我有一个尺寸统一的清单,如下所示。我想提取键的值。我该怎么做?
我通过使用像这样的names(allsum)地方隔离了钥匙allsum
`$1999
[1] 7332967
$2002
[1] 5635780
$2005
[1] 5454703
$2008
[1] 3464206`
Run Code Online (Sandbox Code Playgroud)
我想要[7332967, 5635780, 5454703, 3464206]作为输出。我尝试过,sapply但是直觉很弱。请帮忙。
for(a in allsum) {
print(a[[1]])
}
Run Code Online (Sandbox Code Playgroud)
我试过了,它可以工作,但是我想知道我们是否可以使用某些功能或不使用任何显式循环。
我尝试使用unlist
以下操作会发生什么
c1 <- unlist(allsum)
#1999 2002 2005 2008
#7332967 5635780 5454703 3464206
Run Code Online (Sandbox Code Playgroud)
我只需要大数目。如何提取?
关于什么
allsum <- list(`1999` = 7332967, `2002` = 5635780,
`2005` = 5454703, `2008` = 3464206)
paste(unlist(allsum))
# [1] "7332967" "5635780" "5454703" "3464206"
Run Code Online (Sandbox Code Playgroud)
如注释中所指出,paste会将数值转换为字符串。
您可以使用以下方法解决创建的问题paste(unlist(allsum)):
as.numeric(paste(unlist(allsum))
# [1] 7332967 5635780 5454703 3464206
Run Code Online (Sandbox Code Playgroud)
或者通过在注释中使用Sotos的建议完全避免该问题:
unname(unlist(allsum))
# [1] 7332967 5635780 5454703 3464206
Run Code Online (Sandbox Code Playgroud)