【发布时间】:2020-09-10 07:51:09
【问题描述】:
我有一个包含完整行和不完整行的 data.frame,例如:
dat <- data.frame(
"one" = c(1, 1, 1, 3, NA),
"two" = c(2, 2, NA, 4, 4),
"three" = c(1, 1, NA, 5, 5),
"four" = c(2, NA, 2, 6, 6)
)
我想将包含 NA 的行标记为 TRUE,其中它们的值等于同一列中的值,在 NA 较少的行上,所以
dat$redundant <- c(FALSE, TRUE, TRUE, FALSE, TRUE)
基本上我正在寻找duplicated(dat, MARGIN = 1),但NA 算作任何当前值的匹配项。这可能吗?
【问题讨论】:
-
如何让最后一行为真
-
如果您的示例
dat有一行包含 NA 但所需的redundant值为 FALSE,这会更清楚,因为该行的一列中有一个唯一值。我认为dat <- data.frame( "one" = c(1, 1, 1, 3, NA, NA), "two" = c(2, 2, NA, 4, 4, 9), "three" = c(1, 1, NA, 5, 5, 5), "four" = c(2, NA, 2, 6, 6,6) )..可以这样做吗? -
该示例可以通过不同的方式给出预期的输出。最好能把例子弄得有点独特
-
你是对的@PeterEllis,你的例子更好——data.frame 中的最后一行应该返回
FALSE。 -
@akrun 如果最后一行的 NA 是 3,它将匹配上面的行
标签: r