繁体   English   中英

R function 用于将 data.table 转换为命名向量的命名列表

[英]R function for converting data.table to named list of named vectors

例如,我正在寻找 R function ,它会在合理的时间内转换 data.table (实际上有许多 1000 条目):

id num1 name
id1    1    a
id1    5    f
id1    8    y
id1    5    z
id2    2    w
id2    5    k
id2    6    l

到“num1”列的“name”列向量的“id”列的命名列表。

Output(列表)看起来像这样:

$id1
   a f y z
   1 5 8 5
$id2
   w k l
   2 5 6

预先感谢您的帮助。

您可以split并使用setNames来获取命名向量

lapply(split(df, df[[1]]), function(x) setNames(x$num1, x$name))

#$id1
#a f y z 
#1 5 8 5 

#$id2
#w k l 
#2 5 6 

就像@StudidWolf 建议的那样,我们也可以by这里使用。

by(df,df$id,function(x) setNames(x$num1,x$name))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM