1. 程式人生 > >R語言實戰--隨機產生服從不同分佈函式的資料(正態分佈,泊松分佈等),並將資料寫入資料框儲存到硬碟

R語言實戰--隨機產生服從不同分佈函式的資料(正態分佈,泊松分佈等),並將資料寫入資料框儲存到硬碟

隨機產生服從不同分佈的資料

均勻分佈——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檔案中