ejs*_*ina 2 r type-conversion lapply dataframe reshape2
我正在尝试将由两列组成的数据框转换为命名向量(嵌套列表)。每行中的信息本质上是key:value对,因此最终向量中的列表应分别由key命名并包含其各自的值。
Example input:
Var1 Var2
A 1
A 2
B 1
B 3
C 3
C 4
C 5
Example Output:
namedArray = list(A = c(1,2), B = c(1,3), C = c(3,4,5))
Run Code Online (Sandbox Code Playgroud)
我设法dcast()
在reshape2包中使用了此方法,但是这需要进行额外的后处理,以删除行名和通过铸造数据帧引入的NA。
有没有更有效的方法来实现这一目标?
如果您有2列:数据框df1中的X和Y,并且您希望Y的值成为具有X值的项的名称:
myList <- as.list(df1$X)
names(myList) <- df1$Y
Run Code Online (Sandbox Code Playgroud)
对于修改后的问题,答案是已经有一个函数可以完全做到这一点(并且可能是我给出的更好的答案:
> split(dat$Var2, dat$Var1)
$A
[1] 1 2
$B
[1] 1 3
$C
[1] 3 4 5
Run Code Online (Sandbox Code Playgroud)