在删除重复项的同时连接列。 NA' S

时间:2017-03-20 12:58:58

标签: r dplyr

我正在尝试将多列中的字符串数据合并到一个摘要列中,但我希望忽略NA和重复项。数据是变化的,并且重复数据和数量的NA在数据集和列之间变化。我在下面粘贴了一个可重复的数据示例:

# example data 
data <- data.frame(id = c(1:4), A = c("one", "two", "threeA"),  B = c(NA, "two", "threeB"), C = c(NA, NA, NA))
data

  id      A      B  C
1  1   <NA>   <NA> NA
2  2    one   <NA> NA
3  3    two    two NA
4  4 threeA threeB NA

# desired result
  id              D
1  1           <NA>
2  2            one
3  3            two
4  4 threeA, threeB

我真的很难同时完成这两件事(删除dupes和NA&#)。

我主要使用dplyr,但对其他建议持开放态度。我尝试过使用pastemutate

data %>%
  transmute(id, D = paste( A, B, C , sep = ", ") )

然而,为'NA'值粘贴NA文字并重复粘贴 - 而答案here似乎过于复杂和昂贵(我有数万行)。

我尝试在group_by()以及summarise()中使用dplyrunique()的组合(必须先取消列出数据))和paste()如下:

data %>%
  group_by(id) %>%
  summarize(D = paste( unique( unlist(  A, B, C )) , sep = ", ") 
  )

这也会粘贴NAs,但我可以在以后轻松删除它,但它只会粘贴找到的FIRST唯一值,而不是所有唯一值。

有关如何实现这一目标的任何建议吗?

0 个答案:

没有答案