强制数据框组列出
Coerce dataframe groups to list
我有一个数据框,例如
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))
我们可以使用split
unname(split(df$element, df$id))
或者用unstack
unname(unstack(df, element ~id))
这里有一个 tapply 的解决方案:
library(magrittr)
df %$% tapply(element,id,list)
(元素以 id 命名,如果有问题请添加 %>% unname
)
我有一个数据框,例如
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))
我们可以使用split
unname(split(df$element, df$id))
或者用unstack
unname(unstack(df, element ~id))
这里有一个 tapply 的解决方案:
library(magrittr)
df %$% tapply(element,id,list)
(元素以 id 命名,如果有问题请添加 %>% unname
)