R 如何通过保留其他值将数据帧中的少数行值移到前一行?
我在一个变量上使用distinct,在另一个变量上使用group_。现在,我有了自使用group_by和distinct之后被复制的行。现在我需要将几个列值移到前一行,并删除重复的行。请看给出的示例 我在固定柱上又试了一次。但它不保留第4列和第6列的值R 如何通过保留其他值将数据帧中的少数行值移到前一行?,r,R,我在一个变量上使用distinct,在另一个变量上使用group_。现在,我有了自使用group_by和distinct之后被复制的行。现在我需要将几个列值移到前一行,并删除重复的行。请看给出的示例 我在固定柱上又试了一次。但它不保留第4列和第6列的值 155 B01 C21 NA 154 NA Fixation 366 156 B01 C21 1 B 154 NA Fixation 366 210 B02 C21 NA 53
155 B01 C21 NA 154 NA Fixation 366
156 B01 C21 1 B 154 NA Fixation 366
210 B02 C21 NA 53 NA Fixation 566
211 B02 C21 1 NumPad6 53 NA NA NA
预期产量
155 B01 C21 1 B 154 NA Fixation 366
210 B02 C21 1 NumPad6 53 NA Fixation 566
请注意,我用NAs替换了原始表中缺少的值我刚刚注意到您的行长度不相等-第1行第5列和第3行第4列中缺少一些内容。那里应该有什么?它们只是空的牢房。我要在空单元格中添加NA值。是的,我就是这么做的。所以我下面的解决方案应该有效。我在dplyr管道中使用了铅。它将列移动了一行,并允许我以后使用distinct。然而,你的解决方案给了我一个好主意。
156 B01 C21 1 B 154 - delete this row from the df--
211 B02 C21 1 NumPad6 53 - delete this row from the df--
require(dplyr)
df %>% select(-V1,-V7) %>% #V7 is all NAs, so I need to remove it. V1 is the row-number
group_by(V2,V3) %>%
summarize_all(~unique(.[!is.na(.)]))
# A tibble: 2 x 7
# Groups: V2 [2]
V2 V3 V4 V5 V6 V8 V9
<chr> <chr> <int> <chr> <int> <chr> <int>
1 B01 C21 1 B 154 Fixation 366
2 B02 C21 1 NumPad64 53 Fixation 566