【发布时间】:2016-05-18 16:10:06
【问题描述】:
举个例子,我创建了一个data.framedf1。
对于每次迭代,我们将df1 的顺序混合起来,并将其重命名为df2
然后我们将条件应用于 df2,即:
- 当
df2[1,1] == 1,那么我们要对df2进行子集化,这样我们就可以去掉df2$B==125的大小写,如果df2[1,1] != 1,那么不做任何动作 - 作为
df2[1,1] == 3的第二步,然后我们要对df2进行子集化,以便我们删除df2$B==108的大小写,如果df2[1,1] != 1,则不执行任何操作
但我不知道如何编写这一步。有人可以填补下面的空白。 当我们运行代码时,输出应该成功返回 9 到 10 之间的值。
require(doParallel)
set.seed(123)
A <- 1:10
B <- c(106,144,131,107,125,108,105,119,112,127)
df1 <- data.frame(A,B)
m <- 100
Sample = foreach(i=c(1:m)) %do%{
#shuffle order of data
df2 <- df1[sample(1:nrow(df1)), ]
df2
# when df2[1,1] == 1 then remove df2$B==125, otherwise leave df2 as is
# or
# when df2[1,1] == 3 then remove df2$B==108, otherwise leave df2 as is
length(df2$A)
}
【问题讨论】:
-
“删除 df2$B==125”操作的预期结果是什么?您想用其他值替换它吗,例如 0 或 NA?
-
不,我只是想从数据集中删除它,这样 df2 的长度就会变成 9
-
你想删除整行吗?