【发布时间】:2019-05-02 22:12:27
【问题描述】:
我遇到了以下可能重复但找不到答案的问题
df <-structure(list(year = c(1980, 1980, 1983, 1983, 1986, 1986),
name = c("aa", "bb", "aa", "bb", "aa", "bb"), value = c(1,
2, 4, 3, 2, 5)), .Names = c("year", "name", "value"), row.names = c(NA,
-6L), class = "data.frame")
year name value
1980 aa 1
1980 bb 2
1983 aa 4
1983 bb 3
1986 aa 2
1986 bb 5
我想用过去几年的值填充中间缺失的年份,以获得类似的东西
year name value
1980 aa 1
1980 bb 2
1981 aa 1
1981 bb 2
1982 aa 1
1982 bb 2
1983 aa 4
1983 bb 3
1984 aa 4
1984 bb 3
1985 aa 4
1985 bb 3
1986 aa 2
1986 bb 5
....
我设法扩展了年份和名称列,并为 value 列设置了 NAs
df %>%
complete(year = seq(min(year), max(year)),name)
但未能找到用相应元素填充值列的解决方案。 zoo::na.locf() 浮现在脑海中,但似乎只需要最后一个值来填充 NA?
【问题讨论】: