• R语言系列:生成数据


    R语言系列:生成数据

     (2014-05-04 17:41:57)
    标签: 

    r语言

     

    教育

    分类: 生物信息

    生成规则数据
    1、使用“:“,如x=1:10,注意该方法既可以递增也可以递减,如y=10:1
    2、seq,有两种用法:①seq(起点,终点,步长); ②seq(length=9, from=1, to=5)
        seq还有一种简写:seq(x)    #相当于1:length(x),但当length(x)为0时,返回integer(0)
    3、c(1,2,8)
    4、使用scan(),可以等待键盘输入。输入过程中,可以使用空格分隔每个元素,也可以一行输入一个元素。输入完毕只需键入一个空行即可。
    5、rep(x,n)    #将x重复n次,可使用each限定为依次重复形式
        rep(1:3,3)


    [1] 1 2 3 1 2 3 1 2 3

        rep(1:3,each=3)

    [1] 1 1 1 2 2 2 3 3 3

    rep(1:3,c(1,2,3))
    [1] 1 2 2 3 3 3


    6、sequence(4,9)构造一个包含1:4和1:9共13个元素的向量
    7、gl(k,n,length=,label=)构造一个因子序列。k为水平数,n为每个水平连续出现的次数,length为整个序列的长度,label为因子标签。
    举例:gl(3,5,length=20,label=c('a','b','c'))
    8、expand.grid(a=1:3,b=1:4,c=c('x','y','z'))构造一个数据框,将各参数的各水平完全搭配。
    9、paste:该函数每次从每个参数中提取一个元素组成一个字符串,直至元素最多的参数取完,其它元素不足的参数循环补足。 可接受多个参数,每个参数可包括多个元素。例:paste(c("X","Y"), 1:10, sep="")
    10、combn(x, n)    #生成x中取n个元素的所有组合

    常用随机数字 
    runif(n,min=0,max=1)    #uniform,均匀分布 
    rnorm(n,mean=0,sd=1)    #Gaussian(normal),正态分布 
    rexp(n,rate=1)    #exponential,指数分布 
    rlnorm(n,meanlog=0,sdlog=1)    #lognormal,对数正态分布 

    随机抽样
    sample(x, n, replace=FALSE, prob=)
    sample(10)    #随机排列1:10,默认不重复抽样
    sample(10, 5)    #从1:10中随机抽5个,不重复抽样
    x=10:20; sample(x);    #随机排列x
    sample(10, replace=TRUE)    #从1:10中随机抽10次,允许重复抽样
    sample(0:1, 100, replace=TRUE)    #100次伯努利试验
    sample(c(0,1), 10, replace=TRUE, prob=c(0.1, 0.9))    #分别以0.1和0.9的概率抽取0和1

    字符切割
    strsplit(x, split, fixed = FALSE, perl = FALSE)
        #根据split将x分割,若split=“”,则将x分为单个字符。
        #默认split为正则表达式,可使用fixed=TRUE,对split做精确匹配
        #当perl=TRUE时,使用perl的正则表达式规则
        #当分隔符为?, +, {, |, (, )时,要使用'\'来消除特殊含义

    字符连接
    paste(letters,collapse='')    #将26个小写字母连成一个字符串
        #使用collapse指定的连接符,连接paste的结果为一个字符串
        #鉴别以下几种情况
    paste(letters[1:5])    #不能连接,输出5个字母:"a" "b" "c" "d" "e"
    paste("a", "b", "c", "d", "e", sep='')    #输出"abcde",注意和前者的差别
    paste(1:3,4:6,collapse='-')    #输出"1 4-2 5-3 6"
    paste(1:3,4:6,sep='',collapse='-')    #输出"14-25-36"
    paste(c(1:3,4:6),collapse='-')    #输出"1-2-3-4-5-6"

    R语言中的内嵌常量
    LETTERS    #26个大写字母
    letters    #26个小写字母
    month.abb    #12个月份的三字母缩写
    month.name    #12个月份的全称
    pi    #3.14...
    字母和月份可以取部分子集,例:letters[c(1:8)]

  • 相关阅读:
    043_生成随机密码
    042_提示用户输入年份后测试判断是否为闰年
    041_查找 Linux 系统中的僵尸进程
    040_删除某个目录下大小为 0 的文件
    039_显示 CPU 厂商信息
    038_使用脚本自动创建逻辑卷
    037_自动添加防火墙规则,开启某些服务或端口(适用于 RHEL7)
    bzoj1537
    bzoj2466
    bzoj1047
  • 原文地址:https://www.cnblogs.com/awishfullyway/p/6670058.html
Copyright © 2020-2023  润新知