我的數據集是類似於下面:與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