如何从一个数据集中的两个NA中删除两个数据帧中具有NA的行?

时间:2019-07-04 16:01:33

标签: r dataframe na

我正在尝试从df2中删除df1中与import itertools as it import numpy as np n = 3 step_size = 0.25 r_range = np.arange(0.0, 1.0+step_size, step_size) for ratios in it.product(r_range, repeat=n): if not np.isclose(sum(ratios), 1.0): continue print(ratios) 相同的行。 例如。

NA

预期结果:

df1
    A
1   1
2   NA
3   7
4   NA


df2
    A B C D
1   2 4 7 10
2   3 6 1 3
3   9 5 1 3
4   4 9 2 5

我已经尝试过类似...的事情

df1
    A
1   1
3   7


df2
    A B C D
1   2 4 7 10
3   9 5 1 3

newdf <- df2[-which(rowSums(is.na(df1))),]

noNA <- function(x) { x[!rowSums(!is.na(df1)) == 1]}
NMR_6mos_noNA <- as.data.frame(lapply(df2, noNA))

1 个答案:

答案 0 :(得分:3)

我们可以使用is.na创建一个逻辑条件,并使用它来对'df1'和'df2'的行进行子集化

i1 <- !is.na(df1$A)
df1[i1, , drop = FALSE]
#  A
#1 1
#3 7

df2[i1,]
#   A B C  D
# 1 2 4 7 10
#3 9 5 1  3