我想要函式來檢查 count = NA 的值,然后它會列印出“無效”的行,否則它會說“成功”
order = data.frame(item = c("A","B","C"), count = c(1,2,NA))
check <- function(order){
if (order$count[is.na(order$count),] ){
print(paste(order$item,"not value"))
}
else {
print("success")
}
}
但它會產生錯誤
uj5u.com熱心網友回復:
我認為你可以像這樣縮短整個函式:
# define function:
check <- function(x) {
ifelse(is.na(x), "not value", "success")
}
# input function:
check(order$count)
[1] "success" "success" "not value"
uj5u.com熱心網友回復:
你可以試試這個方法
check <- function(order){
if (any(is.na(order$count)) ){
print(paste(order$item[is.na(order$count)],"not value"))
}
else {
print("success")
}
}
check(order)
[1] "C not value"
錯誤的原因Error in order$count[is.na(order$count), ] : incorrect number of dimensions是它order$count是 vector 但你呼叫[is.na(order$count), ].
此外,order$count[is.na(order$count)]is NA,作為if陳述句的條件輸入是不合適的。
如果你想item逐行檢查,你可以嘗試
check <- function(order){
for (i in 1:nrow(order)){
if (is.na(order$count[i])) {
print(paste(order$item[i], "not value"))
} else {
print(paste(order$item[i], "success"))
}
}
}
check(order)
[1] "A success"
[1] "B success"
[1] "C not value"
uj5u.com熱心網友回復:
這是另一種方法:
library(car)
recode(is.na(order$count), "FALSE='success'; TRUE='not valid'")
[1] "success" "success" "not valid"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/340029.html
上一篇:如何計算具有特定值的列
