2013-03-18 61 views
5

Tôi có hai khung dữ liệu. Tên hàng trong cả hai là ngày. Những gì tôi muốn làm là, tôi muốn chọn tất cả các hàng chung (có cùng ngày) trong cả hai khung dữ liệu và tạo một khung dữ liệu mới chỉ có các hàng phổ biến này.Tìm giao lộ của các tên gọi khung dữ liệu

Tất nhiên, các cột riêng lẻ sẽ được nối cạnh nhau.

Mọi người có thể giúp bạn không ??

+1

Thu gọn người dùng mới và không có phản hồi mang tính xây dựng? * thở dài * –

+0

@RicardoSaporta Đồng ý, xấu hổ với họ. –

Trả lời

5

Hãy thử:

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

Cũng có thể sử dụng bằng cách = 0 thay vì 'row.names'. Và BTW các rownames không phải là lớp R Date, nhưng có giá trị ký tự. Tôi cho rằng người ta cũng có thể làm điều này:

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

cũ +1 đó và xóa câu trả lời được nhập một nửa của tôi. – mnel

+0

Tôi đã dành thời gian để kiểm tra? Nên đã cho bạn thời gian để hoàn thành. –

+1

Tôi đã viết một đoạn về thuật ngữ của các kết nối bên trong và bên ngoài. – mnel

0

Dựa trên lời BondedDust của, nếu bạn sử dụng dòng đầu tiên của đề nghị của ông bạn có thể lấy dữ liệu như bạn muốn, vì bạn sẽ xác định một ngã tư của dữ liệu với chức năng "intersect", lọc dữ liệu với toán tử ('[' và ']') và liên kết dữ liệu theo các cột với hàm 'cbind'.

cbind(df1[ intersect(rownames(df1), rownames(df2)), ]) 
Các vấn đề liên quan