【问题标题】:back fill NA values in panel data set回填面板数据集中的 NA 值
【发布时间】:2018-10-25 12:59:21
【问题描述】:

我想知道如何在面板数据集中回填 NA 值。

数据集

date    firms   return
1999      A      NA
2000      A      5
2001      A      NA
1999      B      9
2000      B      NA
2001      B      10

预计会出现

date    firms   return
1999      A      5
2000      A      5
2001      A      NA
1999      B      9
2000      B      10
2001      B      10

我使用这个公式在面板数据集中用以前的值填充 NA 值

library(dplyr)
library(tidyr)

df1<-df %>% group_by(firms) %>% fill(return)

有没有像这样简单的方法,我可以用面板数据集中的下一个值填充 NA 值。

【问题讨论】:

  • 看看 zoo 包中的 na.locf 函数
  • 我知道,但它是用于面板数据设置的吗?
  • 您认为面板数据设置有什么不同或特别之处?您可以使用fillzoo::na.locf。看看帮助页面。在fill 中,您可以设置direction = "up" 而不是默认的direction = "down"。帮助页面总是一个好的起点,请参阅?fill
  • 查看示例预期结果。 2001 由于面板数据集,NA 值未填充 9。我把方向=“向上”。你能帮我写完整的代码吗?
  • 非常感谢。我得到了同样的结果。抱歉回复晚了。

标签: r panel na fill


【解决方案1】:

你几乎拥有它。

df <- df %>% group_by(firms) %>% fill(return, .direction="up")
df
# A tibble: 6 x 3
# Groups:   firms [2]
   date firms return
  <int> <fct>  <int>
1  1999 A          5
2  2000 A          5
3  2001 A         NA
4  1999 B          9
5  2000 B         10
6  2001 B         10

【讨论】:

  • 非常感谢。但它不工作。 r 没有显示任何错误。很好地处理代码,但输出保持不变。
  • 尝试只运行head(df %&gt;% group_by(firms) %&gt;% fill(return, .direction="up"),20)而不分配它。你得到了什么?
  • 感谢您的 cmets。数据框不再更改。抱歉回复晚了
  • 您能否显示您当前的实际 df、您正在使用的代码以及结果,就像它们在终端中一样?
  • 对不起,它正在工作。他们没有将单元格视为 NA 值会发生什么。现在好了。
猜你喜欢
  • 2017-06-02
  • 1970-01-01
  • 2023-04-10
  • 2013-01-03
  • 2018-06-02
  • 2021-04-27
  • 1970-01-01
  • 2020-05-24
  • 1970-01-01
相关资源
最近更新 更多