【发布时间】:2018-08-29 14:34:05
【问题描述】:
我有一个简单的函数:
new_function <- function(x)
{
letters <- c("A","B","C")
new_letters<- c("D","E","F")
if (x %in% letters) {"Correct"}
else if (x %in% new_letters) {"Also Correct"}
else {x}
}
我用字母创建dataframe:
df <- as.data.frame(LETTERS[seq( from = 1, to = 10 )])
names(df)<- c("Letters")
我想在dataframe上应用这个函数:
df$result <- new_function(df$Letters)
而且不起作用(函数只写“正确”)
我收到此警告:
警告信息: 在 if (x %in% 个字母) { : 条件的长度 > 1,并且只使用第一个元素
【问题讨论】:
-
如果长度大于1,用
ifelse代替if/else -
and if 语句将评估括号之间的部分是否为 TRUE。如果您将一个字母向量传递给
if (x %in% letters) {"Correct"},这将返回一个TRUE和FALSE值的向量。每个字母一个。 -
@Soren Stilling Christensen:当有人回答您的问题时,请考虑投票或接受答案。
标签: r function if-statement