R 尝试用相同的键替换a列的na值,但其中一行有一个值
我有一个数据框R 尝试用相同的键替换a列的na值,但其中一行有一个值,r,dplyr,missing-data,R,Dplyr,Missing Data,我有一个数据框 data.frame(Primary_key = c(100,100,100,100,200,200,200) , values= c("buyer",NA,NA,NA,"seller",NA,NA)) 我想得到一个理想的输出 data.frame(Primary_key = c(100,100,100,100,200,200,200) , values= c("buyer","buyer","buyer","buyer","se
data.frame(Primary_key = c(100,100,100,100,200,200,200) ,
values= c("buyer",NA,NA,NA,"seller",NA,NA))
我想得到一个理想的输出
data.frame(Primary_key = c(100,100,100,100,200,200,200) ,
values= c("buyer","buyer","buyer","buyer","seller","seller","seller"))
这是一个简化版本,原始版本有3个可能的值和10000多个不同的主键
正在考虑一种dplyr
方法来实现这一点,但有点为难
我正在尝试按主键
分组,然后使用替换功能。您可以同时使用tidyr::fill
和dplyr::group\u by
:
库(dplyr)
图书馆(tidyr)
df1%>%
分组依据(主键)%>%
填充(值,.direction=“downpup”)
#A tible:10x2
#>#组:主键[4]
#>主键值
#>
#> 1 50
#>2100名买家
#>3100买家
#>4100买方
#>5100买方
#>6200卖方
#>7200卖方
#>8200卖方
#>9300两个
#>10300两个
示例数据:此数据考虑实际数据中可能发生的不同情况
df1 <- data.frame(Primary_key = c(50,100,100,100,100,200,200,200,300,300),
values= c(NA, NA,"buyer",NA,NA,"seller",NA,NA,NA,"both"))
df1library(tidyr);填充(你的数据框,值,.direction=“down”)
如果NA介于两者之间会怎样(NA,buyer,NA,NA)我发布了一个回答,回答了你的评论。
df1 <- data.frame(Primary_key = c(50,100,100,100,100,200,200,200,300,300),
values= c(NA, NA,"buyer",NA,NA,"seller",NA,NA,NA,"both"))