我有一个统一大小的列表,如下所示。我想提取键的值。我该怎么做?
我已使用names(allsum)
隔离了密钥,其中allsum
看起来像这样
`$1999
[1] 7332967
$2002
[1] 5635780
$2005
[1] 5454703
$2008
[1] 3464206`
我希望[7332967, 5635780, 5454703, 3464206]
作为输出。我试过sapply
但是直觉很弱。请帮忙。
for(a in allsum) {
print(a[[1]])
}
我试过这个,它有效,但我想知道我们是否可以使用某个函数或没有任何显式循环来完成它。
我尝试使用unlist
以下是发生的事情
c1 <- unlist(allsum)
#1999 2002 2005 2008
#7332967 5635780 5454703 3464206
我只需要大数字。我如何提取?
答案 0 :(得分:5)
怎么样?
allsum <- list(`1999` = 7332967, `2002` = 5635780,
`2005` = 5454703, `2008` = 3464206)
paste(unlist(allsum))
# [1] "7332967" "5635780" "5454703" "3464206"
正如评论中所指出的,paste
会将数值转换为字符串。
您可以使用以下代码解决paste(unlist(allsum))
创建的问题:
as.numeric(paste(unlist(allsum))
# [1] 7332967 5635780 5454703 3464206
或者在评论中使用Sotos的建议完全避免这个问题:
unname(unlist(allsum))
# [1] 7332967 5635780 5454703 3464206
答案 1 :(得分:4)
@Sotos非常感谢。
我想我只是在寻找这个!!
unname(unlist(allsum))
答案 2 :(得分:2)
请尝试
as.integer(allsum)
#[1] 7332967 5635780 5454703 3464206
答案 3 :(得分:0)
要获取,list的值作为向量,你应该这样做:
unlist(allsum)