感谢您的帮助,它真的很有用。我最终将一列数字添加到我想要保留顺序的较大数据中。
使用@Josh O'Brien 的例子,
> ## Example data
> A <- data.frame(ID=c(1,1,1,2), ht=1:4)
> B <- data.frame(ID=c(1,1,2,2), wt=3:6)
>
> ## Add column with number of each observation within ID
> A <- transform(A, ID2=ave(ID, ID, FUN=seq_along))
> B <- transform(B, ID2=ave(ID, ID, FUN=seq_along))
>
> # Add a new column in A that numbers the row from 1 to number of row
> A$ORDER_DATA <- 1:nrow(A)
>
> ## Now carry out the merge
> C<-merge(A, B, all.x=TRUE, sort=FALSE)
>
> # Sort the merged data by ORDER_DATA column
> D<-C[with(C,order(ORDER_DATA)),]
> D
ID ID2 ht ORDER_DATA wt
1 1 1 1 1 3
2 1 2 2 2 4
4 1 3 3 3 NA
3 2 1 4 4 5