簡體   English   中英

對於R中的data.frame,根據來自另一個數據幀的值從一個數據幀提取數據

[英]For data.frame in R, pulling data from one data frame based on values from another data frame

抱歉,這真的很簡單,但是我已經嘗試尋找答案了好幾個小時。 我有兩個分別包含幾列的數據框,下面是類似情況的示例(實際數據框非常大且麻煩)。

第一個數據幀

    "GPS_ID" "Object_ID" "DBH_cm"
     1        19426       15
     2        9456        9
     3        19887       11
     5        18765       4 
     6        9322        7

第二個數據幀

    "Location" "ID"
     block 1    9456
     block 2    18765
     block 2    9322

我需要創建一個新對象,該對象的第二個數據幀中的ID僅與第一個數據幀中的對應DBH_cm匹配。 我認為合並可能會有所幫助,但是當我嘗試時,它只是將Location列添加到了第一個數據框中。

如果我正確理解了最終輸出,則merge功能應該是您所需要的:

> merge(x,y, by.x = "Object_ID", by.y = "ID")
  Object_ID GPS_ID DBH_cm Location
1      9322      6      7  block_3
2      9456      2      9  block_1
3     18765      5      4  block_2

您可以通過刪除不需要的列來進一步編輯新的data.frame。

您還可以使用inner_joindplyr 如果xy是兩個數據集

 library(dplyr)
 colnames(y)[2] <- colnames(x)[2]
 inner_join(x,y, by="Object_ID")
 #  GPS_ID Object_ID DBH_cm Location
 # 1      2      9456      9  block 1
 # 2      5     18765      4  block 2
 # 3      6      9322      7  block 2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM