从R

时间:2019-02-26 19:46:32

标签: r

我正在尝试编写一个函数,该函数将从我的数据框中获取数字列(“比率”),并告诉我两位数字中是否包含5。如果语句为,则应返回X5。 true或“”(如果为false)。我已经尝试过ifelse

contX5 <- function(x) {
   ifelse(5 %in% name$rate, "X5", "")
}

它返回的唯一内容是:

[1] ""

如何更改它,以便获得整列的答案?

谢谢!

2 个答案:

答案 0 :(得分:1)

%in%查找完全匹配的 。就您而言,5 %in% name$rate仅与rate列中的数字5相匹配。您可以使用grepl()在您的列中找到5任何项。

ifelse(grepl(5, name$rate), "X5", "")

答案 1 :(得分:0)

您可以尝试。我加了一个例子。

yourData <- c(10, 5, 125, 100, 50)

ifelse(unlist(lapply(strsplit(as.character(yourData), ''), function(x) any(x %in% '5'))), 'X5', '')

""   "X5" "X5" ""   "X5"