假设我有以下数据集:
A | B | C |
---|---|---|
1 | 不适用 | 不适用 |
不适用 | 2 | 不适用 |
不适用 | 不适用 | 3 |
我正在努力
A | B | C |
---|---|---|
1 | 2 | 3 |
这个的上下文是我有这样一个数据集,其中如果 A 非空,则有值,B/C 始终为 NA,B/C 也是如此。而且ABC的长度也不一样。
然后我用这些值来计算与库(bayestestR)中的重叠(x,y)的重叠系数。但是,如果我保留 NA,则重叠(a,a)(即同一组)的结果不是 1,而是 0.98 或类似的值。我不知道该怎么办。请指教!预先感谢。
如果有人有关于如何提示重叠()忽略 NA 的提示,我想这也会起作用!
我试过了
df <- data.table(df)[, lapply(.SD, function(x) x[order(is.na(x))])]
df[!result[, Reduce(`&`, lapply(.SD, is.na))]]
df[complete.cases(df), ]
但它仍然留下了 NA 值,甚至有很多行的所有值都是 NA!这段代码有助于将所有非 NA 值移到顶部,但 NA 仍然在那里。
一个更大的例子会有所帮助,但尝试使用
dplyr::reframe()
和已经建议的(@benson23)na.omit()
:
aux <- tribble(
~a, ~b, ~c,
1, NA, NA,
1, NA, 31,
NA, 2, NA,
NA, NA, 3,
11, NA, NA)
aux <- reframe(aux, across(everything(), \(x) unique(na.omit(x))))
# A tibble: 2 × 3
a b c
<dbl> <dbl> <dbl>
1 2 31
11 2 3