DQd*_*dlM 6 sorting merge r dataframe
我有一个数据框,将瓶号与其卷相关联(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)
}
Run Code Online (Sandbox Code Playgroud)
您可以使用结果进行match
子集化:key
bottles <- key[match(samp, key$num),]
# rownames are odd because they must be unique, clean them up
rownames(bottles) <- seq(NROW(bottles))
Run Code Online (Sandbox Code Playgroud)