删除行中的重复项,插入NAs

时间:2017-10-27 12:35:01

标签: r dataframe

我没有看到任何类似的问题,它可能对其他人有用。 我想删除行中的重复项并插入NA。 好的,快速举例,让我们创建一个df:

v1 <- c('A','D','F')
v2 <- c('A','D','G')
v3 <- c('B','E','F')
v4 <- c('C', NA, NA)
df <- data.frame(v1,v2,v3,v4)

> df
  v1 v2 v3   v4
1  A  A  B    C
2  D  D  E <NA>
3  F  G  F <NA>

期望的结果:

> df
  v1 v2 v3     v4
1  A  B  C   <NA>
2  D  E <NA> <NA>
3  F  G <NA> <NA>

好的,我尝试解决这个问题,从df然后unique()中提取每一行,然后将其放回到df中。这是一行的示例,但ut不起作用。如果愿意,我会对每一行进行一些申请。

df[1,] <- unique(as.character(unlist(df[1,])))

1 个答案:

答案 0 :(得分:3)

我们可以applyMARGIN=1一起循环使用replace duplicated元素NAc连接t非NA元素与&#39; NA&#39;元素,转置(data.frame)数据集并转换为as.data.frame(t(apply(df, 1, function(x) { x1 <- replace(x, duplicated(x), NA) c(x1[!is.na(x1)], x1[is.na(x1)])}))) # V1 V2 V3 V4 #1 A B C <NA> #2 D E <NA> <NA> #3 F G <NA> <NA>

DataFrames