【发布时间】:2011-01-19 15:08:29
【问题描述】:
我是 R 新手,正在尝试处理 apply 系列函数。具体来说,我正在尝试编写一个高阶函数,它将接受 2 个字符向量“host”和“guest”(不需要相同的长度)并返回一个与“host”长度相同的索引向量",生成的元素对应于它们在来宾中的索引(如果不存在,则为 NA)。
host <- c("A","B","C","D")
guest <- c("D","C","A","F")
matchIndices <- function(x,y)
{
return(match(x,y))
}
此代码按预期返回 3:
matchIndices(host[1],guest)
这是我希望能够用简洁的应用函数(sapply?)替换的循环
for (i in 1:length(host))
{ idx <- matchIndices(host[i],guest);
cat(paste(idx,host[i],"\n",sep=";"))
}
这段代码“有效”,因为它产生了下面的输出,但我真的希望结果是一个向量,而且我预感其中一个应用函数可以解决问题。我只是纠结于如何写。非常感激任何的帮助。谢谢。
3;A; 不适用;乙; 2;C; 1;D;
【问题讨论】:
标签: r