我猜你想要一个函数,应用a
它会返回找到每个元素的向量的名称以及该向量中的位置。
这不是很漂亮,但应该做你想做的事:
fun1 <- function(i) {
res <- NULL
if (a[i] %in% x) res <- paste("x",which(x==a[i]),sep="")
if (a[i] %in% y) res <- c(res, paste(" y",which(y==a[i]),sep=""))
names(res) <- rep(a[i],length(res))
return(res)
}
然后
unlist(sapply(1:length(a), FUN = fun1))
给
0 0 1 2 2 4 6 6 8 Inf
"x1" "x2" " y1" "x3" " y2" "x4" " y3" " y4" "x5" " y5"
更新是你要找的吗?
fun1 <- function(i) {
res1 <- res2 <- NULL
if (a[i] %in% x) res1 <- paste("x", which(x %in% a[i]),sep="",collapse=" ")
if (a[i] %in% y) res2 <- paste("y", which(y %in% a[i]),sep="",collapse=" ")
res <- paste(res1,res2,collapse="")
names(res) <- a[i]
ascii:::trim(res)
}
这与以前的用法相同,给出
0 1 2 4 6 8 Inf
"x1 x2" "y1" "x3 y2" "x4" "y3 y4" "x5" "y5"