我想随机地对数据帧进行子集化,条件是如果在子集中包含alpha = 1的观察,那么所有具有alpha = 1的观察必须包含在子集中。我简化了数据,所以它看起来像这样。
df
alpha beta gamma
1 5 2
1 6 3
1 5 3
2 3 2
2 5 9
2 2 6
3 3 4
3 4 7
3 3 8
4 3 4
4 8 3
4 4 9
5 9 8
5 5 5
5 3 5
我应该使用什么命令来获取如下的子集?
df1
alpha beta gamma
1 5 2
1 6 3
1 5 3
3 3 4
3 4 7
3 3 8
5 9 8
5 5 5
5 3 5
df2
alpha beta gamma
2 3 2
2 5 9
2 2 6
4 3 4
4 8 3
4 4 9
5 9 8
5 5 5
5 3 5
df3
alpha beta gamma
1 5 2
1 6 3
1 5 3
2 3 2
2 5 9
2 2 6
5 9 8
5 5 5
5 3 5
具体地,df中具有数字(1,5,2)的第一次观察随机落在子集df1和df3中。如果是这样,必须遵循df(1,6,3)和(1,5,3)中的第二和第三次观察也包含在子集df1和df2中。
我希望我的问题很明确。请帮忙。
答案 0 :(得分:0)
试试这个
04-20 15:58:41.233 2598-23393/com.not.tuncozer.not E/Error!: Value of type java.lang.String cannot be converted to JSONObject
输出
str <- "alpha,beta,gamma
1,5,2
1,6,3
1,5,3
2,3,2
2,5,9
2,2,6
3,3,4
3,4,7
3,3,8
4,3,4
4,8,3
4,4,9
5,9,8
5,5,5
5,3,5"
df <- read.csv(textConnection(str))
df[df$alpha %in% sample(unique(df$alpha), 3), ]