微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R:从两个列表创建一个数据框

如何解决R:从两个列表创建一个数据框

我有以下对象,名为 elements,如下所示:

$A
$A$stringValue
[1] "A1,A2,A3,A4"

$B
$B$stringValue
[1] "B1,B2"

我已尝试取消列出对象并使用 A1,A4B1,B2 获取列表,但之后我无法将它们转换为数据帧。我想要的输出一个看起来像这样的数据框:

Element    SubElements
      A             A1
      A             A2
      A             A3
      A             A4
      B             B1
      B             B2

解决方法

试试这个代码

setNames(
  rev(stack(lapply(lst,function(x) unlist(strsplit(unlist(x),","))))),c("Element","SubElements")
)

给出

  Element SubElements
1       A          A1
2       A          A2
3       A          A3
4       A          A4
5       B          B1
6       B          B2
,

我找到了使用 lapply 和melt(重塑包)的解决方案。它为您提供了所需的输出,@ThomasIsCoding 是第一个,但我仍然想贡献 :)

output=reshape::melt(lapply(elements,function(x) strsplit(unlist(x),")))
output$L2=NULL
colnames(output)=c("Element","SubElements")
,
L <- list( A = c( "A1,A2,A3,A4"),B = c( "B1,B2" ) )
           

library( data.table )
rbindlist( lapply( L,strsplit," ),idcol = "Element" )

#    Element V1
# 1:       A A1
# 2:       A A2
# 3:       A A3
# 4:       A A4
# 5:       B B1
# 6:       B B2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?