【发布时间】:2019-03-27 16:05:55
【问题描述】:
我是 R 新手,尽管研究了该网站,但我似乎无法解决这个问题:
我有一个非常大的数据框列表(来自不同站点的历史气候数据),我需要创建一个新列表,其中仅包含那些具有由一个独立数据框给出的特定值(经度和纬度)的数据框。
所以我有:
df1 <- data.frame("x" = c(1, 1, 1), "y" = c(-2, -2, -2), "a" = c(3, 6, 9), "b" = c(4, 5, 3))
df2 <- data.frame("x" = c(1.2, 1.2, 1.2), "y" = c(-2, -2, -2), "a" = c(3, 4, 78), "b" = c(12, 5, 8))
df3 <- data.frame("x" = c(1.3, 1.3, 1.3), "y" = c(-2.1, -2.1, -2.1), "a" = c(19, 5, 5), "b" = c(7, 7, 20))
my_list <- list(df1, df2, df3)
每个数据帧对应一个站点,在两列中给出了特定的 lon 和 lat 值(所有行长度的恒定值,因为它是同一个站点)
> df1
x y a b
1 1 -2 3 4
2 1 -2 6 5
3 1 -2 9 3
> df2
x y a b
1 1.2 -2 3 12
2 1.2 -2 4 5
3 1.2 -2 78 8
> df3
x y a b
1 1.3 -2.1 19 7
2 1.3 -2.1 5 7
3 1.3 -2.1 5 20
然后,我有一个独立的数据框,其中包含经度和纬度,我想获取它的气候数据。
df_xy <- data.frame("x"= c(1, 1.3), "y" = c(-2, -2.1))
> df_xy
x y
1 1.0 -2.0
2 1.3 -2.1
理想情况下,我会获得一个新列表,其中包含与指定的 x、y 匹配的数据帧。
output_list <- list(df1, df3)
尽管我尝试过使用 lapply 和 Map(merge, my_list, df_xy),但我似乎无法成功。非常感谢您的帮助!
【问题讨论】: