我有一个数据列表,它看起来是这样的:
library(data.table)
dt1 <- data.table(age_group = c("young", "old"), ratio = runif(2))
dt2 <- data.table(age_group = c("young", "old"), ratio = runif(2))
dt_list <- list(
list(ratio_by_group = dt1),
list(ratio_by_group = dt2),
list(ratio_by_group = NA)
)
dt_list
[[1]]
[[1]]$ratio_by_group
age_group ratio
1: young 0.5956572
2: old 0.5053023
[[2]]
[[2]]$ratio_by_group
age_group ratio
1: young 0.4632962
2: old 0.2356656
[[3]]
[[3]]$ratio_by_group
[1] NA
我希望tp精确显示特定组(即‘Young’)的比率信息,并将其作为向量返回.我使用了以下代码:
sapply(dt_list, function(x) ifelse(!is.na(x$ratio_by_group), x$ratio_by_group[age_group=='young', ratio], NA))
[,1] [,2]
[1,] 0.5956572 0.4632962
[2,] 0.5956572 0.4632962
[3,] 0.5956572 0.4632962
[4,] 0.5956572 0.4632962
我的预期yields 是
[1] "0.5956572" "0.4632962" NA