我有兩個資料框。一是車站收集點全年不同日期的質量st。另一個是當年每個st季節的土地利用情況。
例子
圖書館(dplyr)
water_df=read.table(text="st Date OD pH DBO A 01/07/2005 8 6.3 3 A 02/06/2005 7 6.2 2.2 A 01/01/2005 7.3 6.5 3.1 A 03/05/2006 6 6.3 4 A 09/08/2006 6.8 7.1 1.1 A 12/12/2006 7.3 8.1 2.9 B 02/07/2005 6.8 5.4 2.6 B 03/06/2005 6.0 5.3 1.9 B 02/01/2005 6.2 5.5 2.6 B 04/05/2006 5.1 5.4 3.4 B 10/08/2006 5.8 6.0 0.9 B 13/12/2006 6.2 6.9 2.5 C 20/12/2006 6.5 7.2 2.6 C 27/12/2006 6.8 7.6 2.7 C 03/01/2007 7.2 8.0 2.9 C 10/01/2007 7.5 8.4 3.0 C 17/01/2007 7.9 8.8 3.1 C 24/01/2007 8.3 9.2 3.3 C 31/01/2007 8.7 9.7 3.5 C 07/02/2007 9.2 10.2 3.6", sep="", header=TRUE)%>%as.data.frame() land_df=read.table(text = "st year Veg Water Soil Crop Grass A 2005 100 200 80 130 70 B 2006 98 180 84 132 86 C 2007 93 175 79 127 106", sep="", header = TRUE)%>%as.data.frame()
我想將該站的土地利用價值添加到質量 data.frame 中,即使同一站st重復。

我嘗試了一些東西,但沒有用
#I tryed cbind
join_df<-cbind(water_df, land_df)
#I tryed
library(purrr)
joind_df2<-purrr::reduce(water_df, land_df)
uj5u.com熱心網友回復:
此操作通常稱為“加入”或“合并”。您需要加入列,這意味著我們需要從您的日期中提取年份,然后它是一個left_join命令。有關在 R 中加入資料的更多資訊,請參閱此常見問題解答。
library(dplyr)
library(lubridate)
water_df %>%
mutate(year = year(dmy(Date))) %>%
left_join(land_df, by = c("st", "year"))
# st Date OD pH DBO year Veg Water Soil Crop Grass
# 1 A 01/07/2005 8.0 6.3 3.0 2005 100 200 80 130 70
# 2 A 02/06/2005 7.0 6.2 2.2 2005 100 200 80 130 70
# 3 A 01/01/2005 7.3 6.5 3.1 2005 100 200 80 130 70
# 4 A 03/05/2006 6.0 6.3 4.0 2006 NA NA NA NA NA
# 5 A 09/08/2006 6.8 7.1 1.1 2006 NA NA NA NA NA
# 6 A 12/12/2006 7.3 8.1 2.9 2006 NA NA NA NA NA
# 7 B 02/07/2005 6.8 5.4 2.6 2005 NA NA NA NA NA
# 8 B 03/06/2005 6.0 5.3 1.9 2005 NA NA NA NA NA
# 9 B 02/01/2005 6.2 5.5 2.6 2005 NA NA NA NA NA
# 10 B 04/05/2006 5.1 5.4 3.4 2006 98 180 84 132 86
# 11 B 10/08/2006 5.8 6.0 0.9 2006 98 180 84 132 86
# 12 B 13/12/2006 6.2 6.9 2.5 2006 98 180 84 132 86
# 13 C 20/12/2006 6.5 7.2 2.6 2006 NA NA NA NA NA
# 14 C 27/12/2006 6.8 7.6 2.7 2006 NA NA NA NA NA
# 15 C 03/01/2007 7.2 8.0 2.9 2007 93 175 79 127 106
# 16 C 10/01/2007 7.5 8.4 3.0 2007 93 175 79 127 106
# 17 C 17/01/2007 7.9 8.8 3.1 2007 93 175 79 127 106
# 18 C 24/01/2007 8.3 9.2 3.3 2007 93 175 79 127 106
# 19 C 31/01/2007 8.7 9.7 3.5 2007 93 175 79 127 106
# 20 C 07/02/2007 9.2 10.2 3.6 2007 93 175 79 127 106
有一些缺失值,您land_df在特定年份沒有對特定站點進行觀測。如果你想用之前的觀察來填充這些,請查看?tidyr::fill和這個 FAQ。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/374321.html
