我有一个年龄向量(97岁). 我还有一个包含"Year"和97列值的数据框.
Year | 1 |
---|---|
2020 | 5.663 |
2021 | 9.344 |
向量(97):2050、2045、2047......
对于列1,我需要提取向量第一年的值2050,对于列2,需要提取向量的第二个值2045,依此类推.
我不知道怎么做,我想也许循环是最好的?
我有一个年龄向量(97岁). 我还有一个包含"Year"和97列值的数据框.
Year | 1 |
---|---|
2020 | 5.663 |
2021 | 9.344 |
向量(97):2050、2045、2047......
对于列1,我需要提取向量第一年的值2050,对于列2,需要提取向量的第二个值2045,依此类推.
我不知道怎么做,我想也许循环是最好的?
我可能误解了;这是你的预期yields 吗?
set.seed(123)
df <- data.frame(Year = c(2020, 2021, 2022),
Col1 = rnorm(3),
Col2 = rnorm(3),
Col3 = rnorm(3))
df
#> Year Col1 Col2 Col3
#> 1 2020 -0.5604756 0.07050839 0.4609162
#> 2 2021 -0.2301775 0.12928774 -1.2650612
#> 3 2022 1.5587083 1.71506499 -0.6868529
years_vec <- c(2022, 2021)
output <- list()
for (i in seq_along(years_vec)) {
output[[i]] <- df[match(years_vec[i], df$Year), i + 1]
}
unlist(output)
#> [1] 1.5587083 0.1292877
创建于2023-06-28,共reprex v2.0.2个