我想创建一个命名列表,其中每个名称都有多个值。如果每个名称都有一个值,我只能找到如何执行此操作。我现在使用的解决方案是
df <- data.frame(col1=c('a','a','b','b'), col2=c(1,2,3,4))
l <- list()
for(letter in unique(df$col1)){
l[[letter]] <- df[df$col1==letter,]$col2
}
> l
$a
[1] 1 2
$b
[1] 3 4
但有什么更好的方法呢?
答案 0 :(得分:3)
我们可以使用split
返回named
list
vector
个
split(df$col2, df$col1)