使用布尔条件随机采样数据帧

时间:2017-12-29 16:49:04

标签: r dataframe

我有一个包含8列和10,000行的数据框。我想为" 1"的所有组合随机抽样3行。和" 2"值为TRUE的列(例如2a和2a)

enter image description here

我最初的尝试是这样的:

df[sample(nrow(df[df$1a == TRUE & df$2a == TRUE,]), 3), ]

给出了输出。

      1a    1b    1c    1d    2a    2b    2c    2d
1136 FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE
1021  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
589  FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE

选择1a和2a为FALSE的行。我究竟做错了什么?非常感谢你。

1 个答案:

答案 0 :(得分:2)

这段代码

df[df$1a == TRUE & df$2a == TRUE,]

应返回0行,因为没有这种情况。

如果您的数据框超过这10行,请尝试使用TRUE作为字符:

df[sample(nrow(df[df$1a == "TRUE" & df$2a == "TRUE",]), 3), ]