我正在努力弄清楚如何重復valueforid2當它有value = NA,并且也有相同的date1.
我有以下資料框:
test = data.frame(date1 = c("2020-11-02", "2020-11-02","2020-11-02", "2020-11-03","2020-11-04","2020-11-04"),
value = c(676, 676, NA, 400, 505, NA),
id1 = c("16-4-L", "16-3-L", "16-3-R", "16-3-F", "17-6-L", "17-1-L"),
id2 = c("16", "16", "16", "16", "17", "17"))
# date1 value id1 id2
# 1 2020-11-02 676 16-4-L 16
# 2 2020-11-02 676 16-3-L 16
# 3 2020-11-02 NA 16-3-R 16
# 4 2020-11-03 400 16-3-F 16
# 5 2020-11-04 505 17-6-L 17
# 6 2020-11-04 NA 17-1-L 17
#and I need the following:
#> result
# date1 value id1 id2
# 1 2020-11-02 676 16-4-L 16
# 2 2020-11-02 676 16-3-L 16
# 3 2020-11-02 676 16-3-R 16
# 4 2020-11-03 400 16-3-F 16
# 5 2020-11-04 505 17-6-L 17
# 6 2020-11-04 505 17-1-L 17
請注意,這id2是不同的,但我希望id1在同一日期使用相同的值。
我想提出這樣的:if value is an NA, then we look to rows that have the same id2 and date1, then just copy that value。
關于我該怎么做的任何提示?
uj5u.com熱心網友回復:
你在找什么東西。喜歡:
library(tidyverse)
test %>%
group_by(date1, id2) %>%
fill(value, .direction = 'updown') %>%
ungroup()
這使:
# A tibble: 6 x 4
date1 value id1 id2
<chr> <dbl> <chr> <chr>
1 2020-11-02 676 16-4-L 16
2 2020-11-02 676 16-3-L 16
3 2020-11-02 676 16-3-R 16
4 2020-11-03 400 16-3-F 16
5 2020-11-04 505 17-6-L 17
6 2020-11-04 505 17-1-L 17
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/360271.html
下一篇:熊貓選擇至少一列中具有特定值的行
