2014-04-14 42 views
0

發現我想以指示元素的矢量位置或行,其中一個術語在矢量

df <- data.frame(G1=c("a","b","e","d","c"), 
       G2=c("a","c","b","d","e")) 

在這種情況下G1爲基準的possition或行,所以「a」爲第一, 「b」,第二個,「e」,第三個等等。 我想在G2中看到的是,「a」是第一位,但「b」現在是第三位。所以,我能得到這個輸出:

df2 <- data.frame(G1=c(1:5), G2=c(1, 3, 5, 4, 2)) 
row.names(df2) <- c("a","b","e","d","c") 

回答

1

嘗試match

df2 <- data.frame(lapply(df, function(x) match(df$G1, x)), row.names=df$G1) 
# G1 G2 
# a 1 1 
# b 2 3 
# e 3 5 
# d 4 4 
# c 5 2