将字符串列表的列表转换为R中的数字数据帧

时间:2017-02-28 16:41:48

标签: r list dataframe mapply

我有一个字符串列表列表如下:

> ll

[[1]]
[1] "2" "1"

[[2]]
character(0)

[[3]]
[1] "1"

[[4]]
[1] "1" "8"

最长的列表长度为2,我想在此列表中构建一个包含2列的数据框。奖励积分还用于将列表中的每个项目转换为字符(0)的数字或NA。我已经尝试使用mapply()和data.frame转换为数据框并使用NA填充如下。

#  Find length of each list element
len = sapply(awards2, length)

#  Number of NAs to fill for column shorter than longest
len = 2 - len

df = data.frame(mapply( function(x,y) c( x , rep( NA , y ) ) , ll , len))

但是,我没有使用上面的代码获得包含2列(以及NA作为填充符号)的数据框。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我们可以使用~$ ln -s /mnt/c/Users/USER/pathto/repo /home/USER/public_html 中的stri_list2matrix。由于stringi元素都是list个向量,因此使用此函数似乎没问题

character

如果我们需要转换为library(stringi) t(stri_list2matrix(ll)) # [,1] [,2] #[1,] "2" "1" #[2,] NA NA #[3,] "1" NA #[4,] "1" "8" ,请使用data.frame

进行换行