假設匹配兩個dataframes我們給定:
#Defining sample variables
set.seed(1) ##Note I didn't set seed for the values below so your numbers will be different
date <- as.Date(c('2015-1-1', '2015-1-1', '2015-1-3', '2015-1-3', '2015-1-5', '2015-1-5'))
variable1 <- runif(6, max=1, min=0)
date2 <- as.Date(c('2015-1-1', '2015-1-3', '2015-1-5'))
variable2 <- runif(3, max=2, min=1)
variable3 <- runif(3, max=5, min=4)
df1 <- data.frame(date, variable1)
df2 <- data.frame(date2, variable2, variable3)
#Sample dataframes
#df1
Date variable1
1 2015-01-01 0.2655087
2 2015-01-01 0.3721239
3 2015-01-03 0.5728534
4 2015-01-03 0.9082078
5 2015-01-05 0.2016819
6 2015-01-05 0.8983897
#df2
Date variable2 variable3
1 2015-01-01 1.646115 4.706171
2 2015-01-03 1.457847 4.549162
3 2015-01-05 1.015068 4.735463
我想定義一些函數,吐出值基於變量2 OR變量3,取決於變量1的值。
我有什麼至今:
SomeVariable <- function(x){
if (x < 0.5)
df2$variable2
else
df2$variable3
}
SomeVariable(df1$variable1[1])
[1] 1.646115 1.457847 1.015068
但不知何故,我需要讓這個功能也按日期匹配變量1,變量2,和variable3 的值。
例如,第一個條目上的SomeVariable應該只返回1.646,最後一個SomeVariable應該只返回4.735。
#Final output should be:
Date SomeVariable
1 2015-01-01 1.646115
2 2015-01-01 1.646115
3 2015-01-03 4.549162
4 2015-01-03 4.549162
5 2015-01-05 1.015068
6 2015-01-05 4.735463
對OP進行了一些編輯。 – Adam
使用set.seed編輯的數字(1) – Adam