【发布时间】:2019-12-19 16:11:16
【问题描述】:
我有点卡住了。我有 2 个数据框 - df1 具有唯一的站 ID、按月计算的百分比值以及该站在数据中的出现次数(年); df2 按年份重复站点 ID,按年份重复每个月的值。
df1:表示各站月非缺失温度数据的百分比; n 代表该站记录的年数
station_ID Jan Feb Mar ... Dec n
10160355 37 39 38 39 141
10160360 94 91 98 89 56
10160390 83 87 85 82 163
df2:各站各月、年的温度数据; df1中的n是df2中重复的station_ID的长度
station_ID year Jan Feb Mar ... Dec
10160355 1878 NA 10 12 12
10160355 1879 12 12 13 10
...
10160355 2018 14 11 15 14
10160360 1963 12 10 12 14
10160360 1964 10 12 15 11
...
(repeats for all stations & total rows = 277604)
我需要什么:对于每个月列,如果 df1$station
我需要的示例输出:
station_ID year Jan Feb ... Dec
10160355 1878 NA NA NA
10160355 1879 NA NA NA
...
10160360 1963 12 10 14
10160360 1964 10 12 11
...
我已经尝试了大约 20 种不同的方法,但我认为我需要某种形式的 dplyr 和 rep 来在条件为真时为每个站点的行重复 NA。
最近一次只有一个月的尝试,因为我无法弄清楚如何做所有的cols:
df3 = df2 %>%
group_by(station_ID) %>%
select(Jan) %>%
mutate(if_else(df1$Jan < 50, rep(NA_character_, df1$n), Jan))
这给出了代表无效“时间”的错误。我想我可能很接近,但我很感激任何建议!谢谢!
【问题讨论】: