我相当肯定这是一个非常明显的问题,但我无法弄清楚。
假设我有以下数据集:
test <- data.frame(A = c(1:10),
B = c(1:10), C = c(1:10),
P = c(1:10))
我想测试一下,如果有一个名为“P”的列,创建一个名为“Z”的新列,并在其中放入一些从 P 计算的内容。
我编写了以下代码(只是为了尝试让它有条件地创建列,我还没有尝试让它做任何事情!):
Clean <- function(data) {
if("P" %in% colnames(data)) {
data$Z <- NA
}
else {
cat("doobedooo")
}
}
Clean(test)
但它似乎没有做任何事情,我不明白为什么,当简单地test$Z <- NA
在数据集上运行时确实有效。我把“doobedoo”放在那里,看看它是否在第一个条件下返回错误。它似乎没有这样做。
我是否只是误解了 if 语句的工作原理?