我下面有示例input
数据-
> df <- data.frame(a=c(1,2,9),b=c(3,4,5),c=c(2,6,7))
> df
a b c
1 1 3 2
2 2 4 6
3 9 5 7
我正在尝试将rach row
转换为单独的列表。
我的尝试-
> apply(df,1,as.list)
以上解决方案将每个row
转换为sublists
。但是,在这种情况下,我正在寻找3个单独的列表。
nrow(df) = no. of lists
所需的输出-
> list1
$a
[1] 1
$b
[1] 3
$c
[1] 2
> list2
$a
[1] 2
$b
[1] 4
$c
[1] 6
> list3
$a
[1] 9
$b
[1] 5
$c
[1] 7
答案 0 :(得分:1)
您可以使用by
和as.list
out <- by(df, 1:nrow(df), as.list)
out
#1:nrow(df): 1
#$a
#[1] 1
#
#$b
#[1] 3
#$c
#[1] 2
#------------------------------------------------------------------------------
#1:nrow(df): 2
#$a
#[1] 2
#$b
#[1] 4
#$c
#[1] 6
#------------------------------------------------------------------------------
#1:nrow(df): 3
#$a
#[1] 9
#$b
#[1] 5
#$c
#[1] 7
这将创建一个by
类的对象。因此,您可以在最后致电unclass(out)
。