Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用两个变量折叠R中的重复行_R_Dplyr - Fatal编程技术网

用两个变量折叠R中的重复行

用两个变量折叠R中的重复行,r,dplyr,R,Dplyr,我的数据集中有部分重复的行。这些行在两个变量上匹配,然后对于其余变量,有一些NAs。如果我能将这些部分重复的行组合起来,我将有一个完整的案例 如何根据两个变量的相似值组合数据集中的行,从而替换每一行中的NAs,留下一个完整的行 a <- (c(1, 1, 1, 1)) b <- (c(1, 1, 3, 3)) c <- (c(NA, 0, NA, NA)) d <- (c(0, NA, 0, NA)) y <- data.frame(a, b, c

我的数据集中有部分重复的行。这些行在两个变量上匹配,然后对于其余变量,有一些NAs。如果我能将这些部分重复的行组合起来,我将有一个完整的案例

如何根据两个变量的相似值组合数据集中的行,从而替换每一行中的NAs,留下一个完整的行

a <- (c(1, 1, 1, 1))  
b <- (c(1, 1, 3, 3))  
c <- (c(NA, 0, NA, NA))  
d <- (c(0, NA, 0, NA))  

y <- data.frame(a, b, c, d)
head(y)  

a1 <- (c(1, 1))  
b1 <- (c(1, 3))  
c1 <- (c(0, NA))  
d1 <- (c(0, 0))  

z <- data.frame(a1, b1, c1, d1)
head(z)

a我们可以使用
data.table
。将“data.frame”转换为“data.table”(
setDT(y)
),按“a”、“b”分组,循环遍历data.table的子集(
.SD
)并获取非NA元素

library(data.table)
setDT(y)[, lapply(.SD, function(x) x[!is.na(x)]) , .(a,b)]
#   a b  c d
#1: 1 1  0 0
#2: 1 3 NA 0

您能否提供一些示例数据来说明您的问题(以及理想情况下的预期输出)?这两个变量是否总是相同的?如果是这样,
your\u data%>%group\u by(match1,match2)%>%summary\u all(coalesce)
应该这样做。我尝试添加了一些代码。基本上,我想让y看起来像z@SymbolXauth OP已经设置了
dplyr
标记,因此他可能正在寻找
dplyr
答案。@UweBlock是的,这可能是真的。但是,其他人也可以阅读答案。