R代码等效于:“如果x是data.frame y的一部分,则返回z”

时间:2019-05-08 19:09:08

标签: r dataframe if-statement

我是R的新手,我不知道该如何用Google搜索,因此我在这里问。 任何帮助将不胜感激!

我想知道如何将以下代码转换为代码:

如果{x(一个字符)是data.frame y的一部分,则返回A} 其他 {返回B}

y <- data.frame(A = c("dog", "cat", "bear", "zebra"), 
                B = c("mosquito", "cockroach", "fly", "worm")

A <- "a_word"

在上面的数据集中,我想举例:

If { 
"dog" is part of y$A, then 
return the A
} 

else if{
"dog" is part of y$B, then 
return B
}

“如果x是data.frame的一部分”部分是我正在努力解决的部分。由于x不是数字,所以我不知道如何将其作为R中的代码编写! 如果它是一个数字,则它将类似于:

ifelse(sum(x[i] == y[1:12]) == 1, A, B)

我该如何处理角色?

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找%in%

在下面的代码中,我检查"dog"是否在列A中,然后是否在列B中。 x是返回值。

y <- data.frame(A = c("dog", "cat", "bear", "zebra"), 
                B = c("mosquito", "cockroach", "fly", "worm")

A <- "a_word"
B <- "b_word"
C <- "c_word"

if ("dog" %in% y$A) {
   x <- A
} else if ("dog" %in% y$B) {
   x <- B
} else {
  x <- C
}
x