12
Tôi có hai dữ liệu.frames. Đối với ví dụ vì chúng ta hãy nói rằng họ trông như thế này:Đặt khung dữ liệu dựa trên nội dung của một khung dữ liệu khác
df1 <- data.frame(x=rep(letters[1:26], 16))
df2 <- data.frame(y=letters[1:4])
Những gì tôi muốn làm là tập hợp con 'df1' để chứa các hàng có cột đầu tiên giá trị phù hợp với bất kỳ giá trị trong cột đầu tiên của 'df2'.
Bây giờ, tôi đã cố gắng:
subset(df1, df1$x == df2$y)
Nhưng điều này nói với tôi rằng tôi cần data.frames kích thước bằng nhau. Suy nghĩ?
df1 [trong đó (df1 $ x% trong% df2 $ y), "x"] <- cảm ơn! –
Bạn có thể thả 'which' như bạn có thể lập chỉ mục trực tiếp với một vectơ của boolean - vì vậy' df1 [df1 $ x% trong% df2 $ y, "x"] 'ngắn hơn. Tôi thích 'cái() 'như tôi đôi khi chỉ muốn các chỉ số để chắc chắn rằng tôi nhận được kết quả tạm thời chính xác. –
Làm cách nào để bạn đặt tập hợp con df1 lớn hơn df2 thay vì khớp? – chimpsarehungry