我想通过four
和x1
中的多个条件,从以下给定的数据帧中创建x2
数据集>
mydata=structure(list(y = c(-3, 24, 4, 5, 3, -3, -3, 24, 5, 4, 8, 7, 9, 2, 4, 8, 7, 3, 8, 12, 9, 10, 12, 11, 2), x1 = c(0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1 ), x2 = c(1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0)), class = "data.frame", row.names = c(NA,25L))
第一个数据集是
mydata00
,它是根据以下条件x1=0
和x2=0
构造的,
mydata00=filter(mydata, c(mydata$x1==0 & mydata$x2==0)) > mydata00 y x1 x2 1 -3 0 0 2 -3 0 0 3 8 0 0 4 3 0 0 5 9 0 0
现在,我只需要
unique
的y
值以及相应的x1
和x2
。最后,我想对y
进行排序。所以我的最终数据集必须看起来像
y x1 x2 1 -3 0 0 2 3 0 0 3 8 0 0 4 9 0 0
我想完成
mydata11
,mydata10
,mydata01
,其中,]的工作,>mydata11=filter(mydata, c(mydata$x1==1 & mydata$x2==1)) mydata10=filter(mydata, c(mydata$x1==1 & mydata$x2==0)) mydata01=filter(mydata, c(mydata$x1==0 & mydata$x2==1))
我可以使用任何for循环或内置函数来创建这些数据集吗?任何帮助表示赞赏。
我想通过x1和x2中的多个条件,从以下给定的数据帧中创建四个数据集mydata = structure(list(y = c(-3,24,4,5,5,3,-3,-3, 24,5,4,8,7,...
我们可以基于split
和x1
的唯一值来x2
数据,并在按unique
对其进行排序之后,在每个列表中获得y
行。
temp <- lapply(split(mydata, list(mydata$x1, mydata$x2)), function(x)
unique(x[order(x$y), ]))
temp
#$`0.0`
# y x1 x2
#6 -3 0 0
#18 3 0 0
#16 8 0 0
#21 9 0 0
#$`1.0`
# y x1 x2
#14 2 1 0
#5 3 1 0
#10 4 1 0
#4 5 1 0
#...