我希望能够将列表中数据框中连续重复的值替换为NA。以下是一个示例:
A = data.frame(matrix(
c(1, 2, 3, 1, 1, 3, 3, 1),
nrow=4,
ncol=2))
B = data.frame(matrix(
c(1, 1, 2, 1, 1, 2, 3, 1),
nrow=4,
ncol=2))
myList <- list(A,B)
提供:
[[1]]
X1 X2
1 1 1
2 2 3
3 3 3
4 1 1
[[2]]
X1 X2
1 1 1
2 1 2
3 2 3
4 1 1
我的目标是
[[1]]
X1 X2
1 1 1
2 2 3
3 3 NA
4 1 1
[[2]]
X1 X2
1 1 1
2 NA 2
3 2 3
4 1 1
我想使用lapply
应该相对简单,但我就是做不到...
lapply(list, function(x){ apply(x, 2, function(y){ return(ifelse(duplicated(y), NA, y)) }) })
这段代码的作用是:对一个列表中的每个元素,应用一个函数来移除该元素中每一列的重复值,并将重复值替换为NA。 - missuse