我正在尝试从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))
答案 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