我没有看到任何类似的问题,它可能对其他人有用。 我想删除行中的重复项并插入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,])))
答案 0 :(得分:3)
我们可以apply
与MARGIN=1
一起循环使用replace
duplicated
元素NA
,c
连接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