强制要列出的数据帧组

时间:2017-07-04 00:32:08

标签: r dplyr tidyverse

我有一个数据框,例如

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 个答案:

答案 0 :(得分:4)

我们可以使用split

unname(split(df$element, df$id))

unstack

unname(unstack(df, element ~id))

答案 1 :(得分:1)

以下是tapply的解决方案:

library(magrittr)
df %$% tapply(element,id,list)

(元素以id命名,如果是问题则添加%>% unname