2012-12-26 99 views
0

我想合併兩個數據幀我有,另一個是從1到6(A)的數字的長列表,另一個是數字1到6的向量,並命名爲每個數字(B)。 如何將B合併到A中,以便A中的數字列表具有B中相應數字的名稱?綁定兩個數據幀

最好的問候, Hlynur牛逼

+3

請提供一些示例數據。 –

+0

要添加到Sven的請求:它有什麼區別,你已經爲每個數字分配了名稱 - 「rownames」,「colnames」,列表名稱等。 –

+0

數字列表可以寫爲A < - sample 1:6200,替換= T)。並且通過使用(名稱<-c(「A」,「B」,「C」,「D」,「E」,「F」)和編號<-1:6)和B < - 數據來製作B.幀(姓名,號碼) –

回答

1

使用匹配()。假設你有以下兩個數據幀:

A <- data.frame(num=sample(1:6,100,replace=TRUE)) 
B <- data.frame(num=1:6,myname=letters[1:6]) 

然後做一個新列「MYNAME」爲數據幀答:

A[,'myname'] <- B[match(A[,'num'],B[,'num']),'myname'] 

正如其他人所說,事情如果使用rownames稍微改變( )而不是爲名稱創建一個列,但是這個一般的構造應該適用於一些調整,無論具體情況如何。

2

如果這種複製你的情況,然後merge是HT答案:

dfB <- data.frame(numb = 1:6, nams = LETTERS[1:6]) 
dfA <- data.frame(nums = sample(1:6, 30, repl=TRUE)) 
merge(dfA, dfB, by.x="nums", by.y="numb") 

(這畝已被要求在過去回答一堆次)。