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)
    rep(1:3,each=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)]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM