gpt4 book ai didi

r - 如何分组并仅回填某些组

转载 作者:行者123 更新时间:2023-12-05 09:02:51 27 4
gpt4 key购买 nike

给定如下面板数据集:

df <- structure(list(date = c(1999L, 2000L, 2001L, 1999L, 2000L, 2001L, 
1999L, 2000L, 2001L), firms = c("A", "A", "A", "B", "B", "B",
"C", "C", "C"), return = c(5L, NA, 6L, 9L, NA, 10L, 8L, NA, 3L
)), class = "data.frame", row.names = c(NA, -9L))

我可以使用 df %>% group_by(firms) %>% fill(return, .direction= “向上”):

   date firms return
<int> <chr> <int>
1 1999 A 5
2 2000 A 6
3 2001 A 6
4 1999 B 9
5 2000 B 10
6 2001 B 10
7 1999 C 8
8 2000 C 3
9 2001 C 3

但我想知道如何回填某些组,即 BC

预期结果:

  date firms return
1 1999 A 5
2 2000 A NA
3 2001 A 6
4 1999 B 9
5 2000 B 10
6 2001 B 10
7 1999 C 8
8 2000 C 3
9 2001 C 3

最佳答案

这是一个简单直观的解决方案:

library(data.table)
df %>% group_by(firms) %>%
mutate(return = ifelse(firms %in% c("B", "C"), nafill(return, type ="locf"), return))

>
date firms return
1 1999 A 5
2 2000 A NA
3 2001 A 6
4 1999 B 9
5 2000 B 9
6 2001 B 10
7 1999 C 8
8 2000 C 8
9 2001 C 3
>

关于r - 如何分组并仅回填某些组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70751282/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com