我有一个大数据帧(以下只是一个例子):
我想随机选择(概率为50%)X1
或X2
的价值。
> df = data.frame(matrix(rnorm(20), nrow=7))
> df
X1 X2
1 0.7091409 -1.4061361
2 -1.1334614 -0.1973846
3 2.3343391 -0.4385071
4 -0.9040278 -0.6593677
5 0.4180331 -1.2592415
6 0.7572246 -0.5463655
7 -0.8996483 0.4231117
我想从X1或X2中随机选择并将其添加到新列中。
结果看起来应该是这样的:
> df
X1 X2 RC
1 0.7091409 -1.4061361 -1.4061361
2 -1.1334614 -0.1973846 -1.1334614
3 2.3343391 -0.4385071 -0.4385071
4 -0.9040278 -0.6593677 -0.6593677
5 0.4180331 -1.2592415 0.4180331
6 0.7572246 -0.5463655 0.7572246
7 -0.8996483 0.4231117 0.4231117
为大数据数据帧执行此操作的最有效方法是什么?
答案 0 :(得分:2)
具有ifelse
功能的常用runif
效果很好。如果数据帧中有100 000 000行,则8 GB RAM笔记本电脑需要几秒钟。
df = data.frame(matrix(rnorm(200000000), nrow=100000000))
df$RC <- ifelse(runif(nrow(df)) > 0.5, df$X1,df$X2)