我有兩個不同的數據集,A和B,它們的長度不同,我需要從B到A的末尾添加一列,如果日期匹配。下面是數據組B的樣子:for循環來匹配列
Variable_1 Variable_2 Date Variable_3
v1 v2 10/12/2014 0
v1a v2a 10/11/2014 18
v1b v2b 10/10/2014 15
v1c v2c 10/08/2014 0
v1d v2d 10/09/2014 0
v1e v2e 10/01/2014 0
答:
Date Variable_4 Variable_5 Variable_0
10/11/2014 v4 v5 N
10/12/2014 v4a v5a N
10/08/2014 v4b v5b N
10/09/2014 v4c v5c N
10/25/2014 v4d v5d N
10/31/2014 v4e v5e N
所以我需要一個循環,如果說在日期中的A相同B日期再加入variable_3的爲DataSet A.
所以循環結束後,它應該看起來像:
Date Variable_4 Variable_5 Variable_0
10/11/2014 v4 v5 18
10/12/2014 v4a v5a 0
10/08/2014 v4b v5b 0
10/09/2014 v4c v5c 0
10/25/2014 v4d v5d N
10/31/2014 v4e v5e N
目前我有這個循環,但它似乎沒有要工作?
lgthWeather <- length(Park$PRCP)
lgthData <- length(Data$Date)
count <- 0
#### broken loop ###
for(i in 1:lgthWeather)
{
for(j in 1:lgthData)
{
if(Data$Date[j] == Park$Date[i])
{
Data$Precip[j] <- Park$PRCP[i]
j <- j + 1
}
if(Data$Date[j] != Park$PRCP[i])
{
j <- j + 1
}
}
i <- i + 1
}
任何意見將不勝感激。
解決方案下圖:
merge(A, B[,c("Date","Variable_3")], by="Date", all.x=TRUE)
Date Variable_4 Variable_5 Variable_0 Variable_3
1 10/08/2014 v4b v5b N 0
2 10/09/2014 v4c v5c N 0
3 10/11/2014 v4 v5 N 18
4 10/12/2014 v4a v5a N 0
5 10/25/2014 v4d v5d N NA
6 10/31/2014 v4e v5e N NA
或者你可以使用'left_join(A,B [C( 「日期」, 「variable_3的」)],通過= '日期')'從'庫(dplyr)' – akrun 2014-10-09 16:10:52
代替添加「解決'你的頭銜,爲什麼你不接受提供的答案之一? – 2014-10-09 16:50:06