这可能很简单,但我无法根据数据库中的变量找到一种方法。这是一个例子:
df <- data.frame(matrix(rnorm(24), nrow=12))
df$color <- factor(rep(c("blue", "red", "yellow", "pink"), each=3))
给出:
X1 X2 color
1 -0.1835 -0.664 blue
2 -1.2774 -0.564 blue
3 1.6395 0.952 blue
4 -0.3831 0.136 red
5 1.2142 0.652 red
6 0.5675 1.435 red
7 -0.0565 0.364 yellow
8 -1.8347 2.511 yellow
9 -0.6089 0.470 yellow
10 -1.0594 1.344 pink
11 -0.1610 -0.540 pink
12 -1.0791 -0.706 pink
我想随机选择一个颜色子集,并创建一个新的data.frame,包括具有所选颜色的所有观察。可能的解决方案如下(我选择两种颜色)
df[df$color %in% sample(levels(df$color),2),]
并获得:
X1 X2 color
4 -0.383 0.136 red
5 1.214 0.652 red
6 0.567 1.435 red
10 -1.059 1.344 pink
11 -0.161 -0.540 pink
12 -1.079 -0.706 pink
但我正在寻找替代方法(用于非常大的数据库)