Ищете лучший способ: как я могу заставить R проверять значения гибкого подмножества нескольких столбцов по элементам (скажем, Var2
и Var3
здесь) и написать результат проверки в новый логический столбец?Проверка нескольких столбцов кадра данных сразу (гибко)
Есть ли более короткий, более элегантный способ, чем использование row-wise apply()
здесь?
df <- read.csv(
text = '"Var1","Var2","Var3"
"","",""
"","","a"
"","a",""
"a","a","a"
"a","","a"
"","a",""
"","",""
"","","a"
"","a",""
"","","a"'
)
criticalColumns <- c("Var2", "Var3")
df$criticalColumnsAreEmpty <-
apply(df[, criticalColumns], 1, function(curRow) {
return(all(curRow == ""))
})
Я мог бы также сделать это в явном виде, но это не является гибким, то:
df$criticalColumnsAreEmpty <- df$Var2 == "" & df$Var3 == ""
Желаемый результат:
Var1 Var2 Var3 criticalColumnsAreEmpty
TRUE
a FALSE
a FALSE
a a a FALSE
a a FALSE
a FALSE
TRUE
a FALSE
a FALSE
a FALSE