【发布时间】:2021-12-26 04:49:50
【问题描述】:
我想知道如何将我的玩具 data 拆分到下面,以便我得到一个较小的 dataf.rames 列表,其中每个包含一对独特的 group?
我的desired_output 如下所示。在R 中是否可以进行这样的子集化?
由于这是一个玩具 data,我非常感谢一个实用的答案,其中列的名称或它们的数字可以与这个玩具 data 不同。
m=
"
y group time outcome
7 a 1 A
3 a 0 B
6 a 1 B
5 b 0 A
9 b 1 A
4 b 0 B"
data <- read.table(text = m, h=T)
desired_output <-
list(
data.frame(y = 5 , group = "b" , time = 0 , outcome = "A" ),
data.frame(y = c(7,9), group = c("a","b"), time = c(1,1), outcome = c("A","A")),
data.frame(y = c(3,4), group = c("a","b"), time = c(0,0), outcome = c("A","A")),
data.frame(y = 6 , group = "a" , time = 1 , outcome = "B"))
[[1]]
y group time outcome
1 5 b 0 A
[[2]]
y group time outcome
1 7 a 1 A
2 9 b 1 A
[[3]]
y group time outcome
1 3 a 0 A
2 4 b 0 A
[[4]]
y group time outcome
1 6 a 1 B
【问题讨论】:
-
唯一组对是什么意思?排列还是组合?对我来说,您的 list[2] 和 list[3] 具有相同的组配对,因此不清楚区别在哪里。还有 list[1] 和 list[4] 甚至没有“对”组...?
-
@tjebo,如果你看看我的
desired_output,你会发现所有可能的group值总是对比的,例如list[[2]]和list[[3]],而其他变量(在这个玩具中@987654332 @、outcome和time) 对它们保持相同。当group值无法对比时(如list[[1]]和list[[4]]),则数据原封不动地返回。