我有以下两个数据帧(实际数据帧要大得多)。我想确定两个数据帧在哪个位置包含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)
有没有人有任何想法,特别是如何在用户编写的函数中将变量用作提取运算符($)之后的字符?
答案 0 :(得分:1)
你走了:
fun <- function(x) { ifelse(e[,x] == 3 & f[,x] == 3, "yes", "no") }
Vs <- c("a", "b")
lapply(Vs, fun)