为什么我的填充函数没有 return 任何值?

Why does my fill function not return any values?

我试图在 R 中填充一个空白列,但是每当我 运行 以下代码没有任何反应:

FF5_class <- 
  FF5_class %>%
  group_by(permno) %>%
  arrange(date) %>%
  fill(Hold, .direction = "down") %>%
  ungroup()

我的数据集名为:FF5_class

我使用以下代码创建了 'Hold' 列:

FF5_class$Hold <- ifelse(FF5_class$Month == "06", FF5_class$Portfolio, "0")

我的数据框中的片段可能如下所示

Permno  Portfolio      Month    Hold
10026   Big.Growth       1       0
10025   Small.Value      1       0
10026   Small.Growth     2       0
10025   Big.Value        2       0
10026   Big.Value        3       0
10025   Big.Value        3       0 
10026   Small.Value      4       0
10025   Small.Growth     4       0
10026   Big. Value       5       0
10025   Small.Growth     5       0
10026   Small Value      6  Small.Value
10025   Small Growth     6  Small.Growth
10026   Small.Neutral    7       0
10025   Big.Neutral      7       0
10026   Big.Neutral      8       0
10025   Big.Neutral      8       0
10026   Big.Neutral      9       0
10025   Small.Neutral    9       0
10026   Small.Neutral   10       0
10025   Small.Neutral   10       0
10026   Small.Neutral   11       0
10025   Big.Growth      11       0
10026   Big.Growth      12       0
10025   Big.Growth      12       0

我正在尝试向前填充 'Hold' 列的值 returns。结果需要依赖于各自的 'Permno' 代码,因此不同公司之间没有重叠 (PERMNOs)

你能看出我做错了什么吗?

谢谢

fill 使用 NA 值,而不是 ifelse.

中的 0 传递 NA
library(dplyr)
library(tidyr)

FF5_class %>%
  mutate(Hold = ifelse(Month == "06", Portfolio, NA)) %>%
  arrange(permno, date) %>%
  group_by(permno) %>%
  fill(Hold, .direction = "down") %>%
  ungroup()