2013-03-18 88 views
5

我有兩個數據幀。兩者中的行名都是日期。我想要做的是,我想在兩個數據框中選擇所有常見行(具有相同的日期),並創建一個只包含這些常見行的新數據框。查找數據幀rownames的交集

當然,各個列將會彼此相鄰。

任何人都可以請幫忙嗎?

+1

Downvoting a new user and no constructive feedback? *嘆* – 2013-03-18 22:25:15

+0

@RicardoSaporta同意,對他們感到羞恥。 – 2015-05-27 01:39:20

回答

5

嘗試:

merge(df1, df2, by="row.names") 
?merge 

也可以通過= 0,而不是 'row.names' 使用。順便說一句,rownames不是R Date類,而是具有字符價值的。我想人們也可以這樣做:

cbind(df1[ intersect(rownames(df1), rownames(df2)), ] , 
     df2[ intersect(rownames(df1), rownames(df2)), ]) 
+0

那個舊的+1並刪除我的一半類型的響應。 – mnel 2013-03-18 21:56:14

+0

我確實需要時間檢查合併。應該給你時間完成。 – 2013-03-18 21:58:34

+1

我正在寫一段關於內部和外部連接的術語。 – mnel 2013-03-18 22:00:08

0

基於BondedDust的答案是,如果你使用他的建議的第一線,你可以得到的數據,如你想,因爲你將定義數據的交集與功能「相交」,使用運算符('['和']')過濾數據,並使用'cbind'函數按列綁定數據。

cbind(df1[ intersect(rownames(df1), rownames(df2)), ])