我有類似下面的一個數據幀,除了我有17個變量(如Var1
和Var2
),而不是2採用相同的標準在許多列計算新列
df <- read.table(header = TRUE, text =
"STUD_ID Var1 Var2
1 0 0
1 0 1
2 1 2
3 3 0", stringsAsFactors = FALSE)
我想如果17個變量中的任何一個具有值1,2或3,則創建輸出「是」的新列,否則創建「否」。我所需的輸出是:
# STUD_ID Var1 Var2 Output
# 1 0 0 "No"
# 1 0 1 "Yes"
# 2 1 2 "Yes"
# 3 3 0 "Yes"
我試着下面的代碼,但它給人的錯誤,我不希望部分粘貼複製的代碼的17倍:
df %>%
mutate(output = if_else(var1 %in% 1:3 |
var2 %in% 1:3, 1, 0))
假設數字都是非負的和正的值是唯一的在{1,2,3}中,則一個班輪將是'ifelse(rowSums(df [-1])> 0,「是」,「否」)。 – lmo