gpt4 book ai didi

用列表中的 NA 替换连续的重复值

转载 作者:行者123 更新时间:2023-12-04 09:36:55 25 4
gpt4 key购买 nike

我想用 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 应该是相对直接的,但我就是没有做到。

最佳答案

使用差异:

res <- lapply(myList, function(i)
data.frame(lapply(i, function(j)
ifelse(c(FALSE, diff(j) == 0), NA, j)
)))

res
# [[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

关于用列表中的 NA 替换连续的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47013698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com