R語言實戰--隨機產生服從不同分佈函式的資料(正態分佈,泊松分佈等),並將資料寫入資料框儲存到硬碟
阿新 • • 發佈:2018-12-11
隨機產生服從不同分佈的資料
均勻分佈——runif()
> x1=round(runif(100,min=80,max=100)) > x1 [1] 93 100 98 98 92 98 98 89 90 98 100 89 94 90 85 91 91 84 84 95 [21] 87 88 91 93 81 81 94 88 81 99 89 82 84 96 90 87 83 91 86 86 [41] 90 86 80 99 92 86 99 91 80 89 89 80 84 93 85 91 98 99 91 95 [61] 92 90 81 88 86 97 80 82 95 87 86 89 81 95 95 81 83 89 82 93 [81] 87 82 94 92 86 90 83 96 99 89 80 90 87 81 92 89 81 95 93 96
其中引數100是產生100個數,取值區間為[80,100]。因為產生的數會有小數,所以使用round四捨五入。
正態分佈——rnorm()
> x2=round(rnorm(100,mean = 80,sd=7)) > x2 [1] 85 79 88 87 85 71 92 73 86 90 90 82 76 79 80 85 73 71 80 78 74 75 88 84 76 92 [27] 93 84 92 86 80 76 87 80 69 87 97 85 73 94 95 81 81 79 86 80 85 88 80 78 89 86 [53] 82 78 77 81 81 89 81 88 85 75 67 71 88 82 83 86 74 78 88 60 89 86 81 78 87 78 [79] 87 77 75 75 79 78 80 69 84 74 79 69 71 78 86 83 88 81 73 78 91 86
mean代表平均值為80,標準差是7。
如果產生的數數值超過了90,而我們只想取90以內的數,那麼使用
> x2[which(x2>90)]=90 > x2 [1] 85 79 88 87 85 71 90 73 86 90 90 82 76 79 80 85 73 71 80 78 74 75 88 84 76 90 [27] 90 84 90 86 80 76 87 80 69 87 90 85 73 90 90 81 81 79 86 80 85 88 80 78 89 86 [53] 82 78 77 81 81 89 81 88 85 75 67 71 88 82 83 86 74 78 88 60 89 86 81 78 87 78 [79] 87 77 75 75 79 78 80 69 84 74 79 69 71 78 86 83 88 81 73 78 90 86
同理,產生其他分佈也是這個道理哦
泊松分佈——rpois()
指數分佈——rexp()
Gamma分佈函式——rgamma()
均勻分佈——runif()
二項分佈——rbinom()
幾何分佈——rgeom()
寫入資料
將資料寫入資料框
> x= data.frame(num,x1,x2,x3)
> num x1 x2 x3
1 10378001 93 85 84
2 10378002 100 79 89
3 10378003 98 88 75
4 10378004 98 87 74
5 10378005 92 85 85
6 10378006 98 71 86
7 10378007 98 90 81
8 10378008 89 73 84
9 10378009 90 86 71
10 10378010 98 90 70
11 10378011 100 90 79
12 10378012 89 82 85
將資料寫入硬碟
> write.table(x,file = "F:/mark.txt",col.names = F,row.names = F,sep="")
將資料框寫入到硬碟的txt檔案中