在R中,如何在用户编写的函数中将变量用作提取运算符($)之后的字符?

时间:2014-08-02 21:28:48

标签: r

我有以下两个数据帧(实际数据帧要大得多)。我想确定两个数据帧在哪个位置包含3(仅在此示例中为spot [2,1])。

a<-c(1,3,5)
b<-c(2,3,4)
c<-c(3,3,4)
d<-c(2,4,7)
e<-cbind(a,b)
f<-cbind(c,d)
colnames(e)<-c("a","b")
colnames(f)<-c("a","b")

结果:

e
## a b
## 1 2
## 3 3
## 5 4

f

## a b
## 3 2
## 3 4
## 4 7

我尝试使用以下功能,但它无法正常工作。

fun<-function(x)
{ifelse(e$x==3 & f$x==3, "yes","no")}
Vs<-c("a","b")
lapply(Vs, fun)

有没有人有任何想法,特别是如何在用户编写的函数中将变量用作提取运算符($)之后的字符?

1 个答案:

答案 0 :(得分:1)

你走了:

fun <- function(x) { ifelse(e[,x] == 3 & f[,x] == 3, "yes", "no") }
Vs <- c("a", "b")
lapply(Vs, fun)