一列中的相应值基于另一列中的值

时间:2019-08-20 18:44:31

标签: r

我下面有一个数据框df。我需要构建一个函数,以便基于第1列(即d)中的值,我需要在d5列中具有相应的值

_threads

所以基本上我需要构建一个名为“ class1”的函数。因此,对于class1(A&E),输出应为factor&factor,对于class1(A&D),输出应为factor&integer。希望你明白我的意思。我尝试使用下面的代码,但仍然出现错误。

       s1
       d  d1  d2         d5
  1  A&B  A    B    factor&integer
  2  A&C  A    C    factor&factor
  3  A&D  A    D    factor&integer
  4  A&E  A    E    factor&factor

现在,如果我输入class1(s1,A&C)。我应该得到factor&factor。但是我没有得到这个

1 个答案:

答案 0 :(得分:1)

如果您只想让函数将类似于列d的变量与列d5匹配,请尝试使用此函数

s1 <- data.frame(
  d = c("A&B","A&C","A&D","A&E"),
  d1 = c("A","A","A","A"),
  d2 = c("B","C","D","E"),
  d5 = c("factor&integer", "factor&factor", "factor&integer", "factor&factor"),
  stringsAsFactors = F
)

class1 <- function(data,var) {
  data[which(data$d==var),"d5"]
}
class1(s1, "A&C")