c*******o 发帖数: 8869 | 1 大家好, 一个R问题, 我有这样两列数字:
MEAN STD
1 0.5
3 1
5 4
我想产生如下的一个新的数列
MEAN STD RANDOM
1 0.5 2
3 1 2
5 4 10
基本上就是用每一行的MEAN STD 去产生一个随即数, 并把它放入DATAFRAME. 如果用
LOOP的话, 会是下面的CODE:
for (i in c(1: dim(data)[1])){
random=rnorm(1,data[i,1], data[i,2])
}
但是这样纯粹靠LOOP的话, 要是几万行DATA就太慢了, 用APPLY什么的怎么做呢? | D******n 发帖数: 2836 | 2 data$random <- apply(data,1,function(x) rnorm(1,x[1],x[2]));
【在 c*******o 的大作中提到】 : 大家好, 一个R问题, 我有这样两列数字: : MEAN STD : 1 0.5 : 3 1 : 5 4 : 我想产生如下的一个新的数列 : MEAN STD RANDOM : 1 0.5 2 : 3 1 2 : 5 4 10
| c*******o 发帖数: 8869 | 3 thank, how about the following, can you judge it? I just come up with it
not sure if it produceS right answer:
random<- rnorm(length(data$mean),mean=data$mean, sd=data$STD). It takes long time to run and has not been complete yet. I will test yours once it is done.....
【在 D******n 的大作中提到】 : data$random <- apply(data,1,function(x) rnorm(1,x[1],x[2]));
|
|