R 删除行中的重复项,插入NAs
我没有看到任何类似的问题,这可能对其他人有用。 我想删除行中的重复项,然后插入NAs。 好的,快速示例,让我们创建一个df:R 删除行中的重复项,插入NAs,r,dataframe,R,Dataframe,我没有看到任何类似的问题,这可能对其他人有用。 我想删除行中的重复项,然后插入NAs。 好的,快速示例,让我们创建一个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
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>
我们可以使用
apply
和MARGIN=1
来循环行,用NA
替换重复的元素,将(c
)非NA元素与“NA”元素连接,转置(t
)数据集并转换为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>
as.data.frame(t)应用(df,1,函数(x){
x1是的,的确,它工作得很好,谢谢你的解释
df[1,] <- unique(as.character(unlist(df[1,])))
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>