强制将数据框分组转换为列表

3

I have a dataframe such as

id <- c(1,1,1,2,2,3,3,3,3)
element <- c(25122,356,4454,5432,342340,12443,12354,123536,234134)
df <- data.frame(id = as.factor(id), element)

我想要创建一个包含 id 组和相应 element 的列表,例如:

dflist <- list(c(25122,356,4454), c(5432,342340), c(12443,12354,123536,234134))
2个回答

4
我们可以使用 split
unname(split(df$element, df$id))

或者使用unstack函数。
unname(unstack(df, element ~id))

1
这是一个使用tapply的解决方案:
library(magrittr)
df %$% tapply(element,id,list)

元素使用id命名,如果有问题,请添加%>% unname


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接