【发布时间】:2012-06-24 01:33:38
【问题描述】:
我有一个将瓶号与其体积相关联的数据框(在下面的示例中为key)。我想编写一个函数,它将获取任何瓶号列表 (samp) 并返回瓶子体积列表同时保持samp中的瓶号顺序。
下面的函数正确匹配瓶号和体积,但按瓶号升序对输出进行排序。
如何保持samp 与merge 的顺序?设置 sort=FALSE 会导致“未指定的顺序”。
示例
samp <- c(9, 1, 4, 1)
num <- 1:10
vol <- sample(50:100, 10)
key <- data.frame(num, vol)
matchFun <- function(samp, key)
{
out <- merge(as.data.frame(samp), key, by.x="samp", by.y="num")
return(out$vol)
}
【问题讨论】:
-
认真的吗?它在手册中。阅读
?merge;sort=TRUE是默认值... -
由于某种原因,这似乎并没有保持
samp的原始顺序...... -
好吧,我很抱歉。
sort=FALSE以“未指定顺序”返回行。看起来我需要 RTFM。 ;-) 带来“伟大的评论”投票。我喜欢我的乌鸦干得好。 -
感谢您的编辑!这是对我的问题的更清晰的描述。