我试图循环这个:
library(demography)
fr.mort$rate$male
fr.mort$rate$female
fr.mort$rate$total
为了得到这样的东西:
library(demography)
for (i in c("male", "female", "total")) {
get(paste("fr.mort$rate$", i, sep = ""))
}
但它不起作用。我不明白为什么"得到"在这种情况下不起作用:)
请帮帮我!
答案 0 :(得分:1)
有更简单,更安全的方法来对列表进行子集化。使用[
子集进行尝试。 R的矢量化子集使得列表元素变得容易。以下是嵌套列表dat
的示例。
> dat <- list(x = setNames(list(1,2,3,4,5), letters[1:5])
> dat$x[c("a", "c", "e")]
# $a
# [1] 1
#
# $c
# [1] 3
#
# $e
# [1] 5
在您的代码中,这将是
> library(demography)
> fr.mort$rate[c("male", "female", "total")]
我很确定大多数经验丰富的R用户会建议你这样做。