我的数据集是类似于下面:与NA更换行,如果任何值不积极
df <- data.frame(
A = c(-1, 2, 3),
B = c(1, 1, -1))
df
# A B
# 1 -1 1
# 2 2 1
# 3 3 -1
我试图得到以下的结果,其中值当两个A
和B
是正不停:
A B
1 NA NA
2 2 1
3 NA NA
我试过df2 <- apply(df, 1:2, function(x) if (x > 0) x else NA)
,但是当A
或B
是正值时它会返回值。我如何将第二个条件添加到它?
这是辉煌!两个问题:1.什么'rowSums(df <= 0)',其中返回'1 0 1',是什么意思? 2.在我的例子中,'df2'的'str'是'num',而你的''data.frame'。如何将其转换为'num'?我需要它来进行下一次计算。 –
@TT 1)'df <= 0'返回一个矩阵,指示'df'中的每个元素是否为非正数,'rowSums'将这些行相加,将'TRUE'转换为1和'FALSE'为0。统计每行中非正数元素的数量。 2)你可以将它封装在'as.matrix'中以将数据框转换为矩阵。 – josliber