如何将两列数据框转换为命名向量?

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。

有没有更有效的方法来实现这一目标?

42-*_*42- 5

如果您有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)