我正在嘗試result在我的資料框中添加一個新列df1,因為特定列(value1和value2列)滿足以下條件:
兩者按行順序為正、負或 0,或其中一個為 0,另一個為負或正,則
result=="True";如果逐行其中一個是正的,另一個是負的,反之亦然,那么
result=="False";如果按行排列,它們都是
NAs 或其中一個是NA但另一個是負數或正數,則result=="-"
輸入:
df1 <- data.frame(ID= c("ID1","ID2","ID3","ID4","ID5"), value1 = c(1.2, -1, NA, -1.5, 0), value2 = c(0.8, -1.1, -1, 1.3, 0.9))
預期輸出:
df2 <- data.frame(ID= c("ID1","ID2","ID3","ID4","ID5"), value1 = c(1.2, -1, NA, -1.5, 0), value2 = c(0.8, -1.1, -1, 1.3, 0.9), result = c("True","True","-", "False", 'True'))
出去:

任何幫助將不勝感激。
參考鏈接:
如果多列具有負值,則添加新列
uj5u.com熱心網友回復:
你可以試試
library(dplyr)
df1 %>%
mutate(result = case_when(
is.na(value1 * value2) ~ "-",
value1 * value2 >=0 ~ "True",
T ~ "False"
))
ID value1 value2 result
1 ID1 1.2 0.8 True
2 ID2 -1.0 -1.1 True
3 ID3 NA -1.0 -
4 ID4 -1.5 1.3 False
5 ID5 0.0 0.9 True
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/381267.html
上一篇:從字串的一部分獲取資料框
下一篇:在R中建模的資料整理
