【发布时间】:2013-07-08 15:11:46
【问题描述】:
在下面的例子中
x <- data.frame(code = 7:9, food = c('banana', 'apple', 'popcorn'))
y <- data.frame(food = c('banana', 'apple', 'popcorn'),
isfruit = c('fruit', 'fruit', 'not fruit'))
我想做x <- merge(x, y),但问题是merge() 重新排序列,以便by 列(食物)排在第一位。 我怎样才能防止这种情况并让merge(x, y) 使用 x 的相同列顺序,只需将新变量 (isFruit) 作为第三列插入(即“code, food, isFruit”而不是“food, code,是水果”)?
我试过了,没用:
merge(x, y, sort = F)
我的解决方法是以后再做
x <- x[c(2, 1, 3)]
【问题讨论】:
-
我认为您的解决方法就是解决方案。
-
...虽然 plyr 包中的
join似乎没有重新排序列。