从R中的数据框创建复杂的列表结构

时间:2014-03-10 22:23:01

标签: r list dataframe

我正在寻找从R。

中的数据框创建列表

我的数据框看起来像这样:

  Name    Age
1 John    30
2 Dan     40
3 Charlie 20
...(few thousand rows)...

我正在尝试生成一个列表,列表中的键是数据框中的名称,每个键/名称都指向list(age=30)

之类的列表

最后,我正在寻找像

这样的东西
 > str(list(John=list(age=30),Dan=list(age=40),Charlie=list(age=20),...))
 List of 3
  $ John   :List of 1
   ..$ age: num 30
  $ Dan    :List of 1
   ..$ age: num 40
  $ Charlie:List of 1
   ..$ age: num 20
  ...

2 个答案:

答案 0 :(得分:3)

您可以合并splitlapplyas.list

lapply(split(df, df$Name), function(x)as.list(x[-1]))
#$Charlie
#$Charlie$Age
#[1] 20

#$Dan
#$Dan$Age
#[1] 40

#$John
#$John$Age
#[1] 30

答案 1 :(得分:1)

z        <- lapply(df$Age,function(x)list(age=as.numeric(x)))
names(z) <- df$Name
str(z)
# List of 3
#  $ John   :List of 1
#   ..$ age: num 30
#  $ Dan    :List of 1
#   ..$ age: num 40
#  $ Charlie:List of 1
#   ..$ age: num 20