r - 使用 R 从列表列表中提取值

标签 r

我有与此示例类似的列表列表:

z <- list(list(num1=list((list(tab1=list(list(a=1, b=2, c=5), list(a=3, b=4), list(d=4,e=7)))))),list(num2=list((list(tab2=list(list(a=1, b=2), list(a=3, b=4)))))))

我想从列表名称的最后一个列表中提取数字:

所需的输出列表(因为 1 个列表条目较短)或作为具有对应于主列表的列的数据框:

[1] a b c a b d e

[2] a b a b

数据框:

column1  column2
 a         a
 b         b
 c         a 
 a         b
 b         ""
 d         "" 
 e         ""

我尝试了 sapply(z, "[[", c("a","b"...) 的各种组合,但失败了,因为子列表名称不同。

编辑:抱歉,我需要的是实际值而不是最后一个节点(字母)!另外,每个数值都有列名,上例中没有设置;是这样的:

[[1]]$num1[[1]]$tab1[[1]]$a
     Name
     1

因此,所需的解决方案是值:

[1] 
1 2 5 3 4 4 7 
[2]
1 2 3 4

我实际上需要数值而不是字母。如果你能调整你的解决方案,我将不胜感激。谢谢。

最佳答案

试试

lapply(z, function(x) as.numeric(unlist(x)))

## [[1]]
## [1] 1 2 5 3 4 4 7
##       
## [[2]]
## [1] 1 2 3 4

关于r - 使用 R 从列表列表中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27441455/

相关文章:

python - Python 中 R 的 seq_len 等价物

r - 使用 dplyr/tidyverse 同时对多个变量进行多个配对 t 检验

r - 使用 R 提取 html_table 中每个单元格内的链接而不是字符

r - 如何在 R markdown (bookdown) 中添加子图

r - R 中的对数标度图

sql - SQL Server : Output data frame into a table 中的 R

python - 如何在 Python 中捕获 rpy2.rinterface.RRuntimeError?

r - R中的距离矩阵

r - 在 dplyr 中使用 approx

r - R中na.rm和na.omit的差异