2016-06-26 56 views
1

ffdf對象VLOOKUP方法我有一個名爲「數據」的ffdf對象有超過26萬行,看起來像這樣:爲R中

 Location     DateandTime  Value 
1    1   01/01/2012 00:00:00  0.8    
2   42   01/01/2012 00:00:00  0.4    
3   14   01/01/2012 00:00:00  0.7    
4   21   01/01/2012 00:00:00  0.2 

我想添加一個名爲「組」數據的第四列基於在一個較小的正常數據幀「查找」,看起來像這樣的價值觀:

 Location  Group 
1    1   1    
2    2   2   
3    3   8   
4    4   7 

所以我想在「數據」新列有查找$組值。我知道這可以在Excel中使用vlookup完成,並且我發現可以在R中使用普通df的函數,例如addNewData.r。但是,這怎麼可以專門爲ffdf對象完成呢?

回答

1

有很多方法可以做這種類型的連接。

在R中,您可以使用merge,或者您可以通過包sqldf使用SQL,僅舉幾個例子。這裏有一個例子:

require(ff) 

mydf <- data.frame(Location = seq(1:10), 
       DateandTime = seq(as.Date(Sys.Date()), by="days", 
            length=10), 
       Value = rnorm(10)) 


lookup <- data.frame(Location = seq(1:10), 
        Group = seq(20,29)) 
lookup 

mydf <- as.ffdf(mydf) # you can make them both ffdf or just one and it still works 

df2 <- merge(mydf,lookup, by = "Location") 
df2 

    Location DateandTime  Value Group 
1   1 2016-06-26 0.6229381 20 
2   2 2016-06-27 1.0009087 21 
3   3 2016-06-28 1.1993809 22 
4   4 2016-06-29 0.8809430 23 
5   5 2016-06-30 -0.4233689 24 
6   6 2016-07-01 -0.7101273 25 
7   7 2016-07-02 0.4404004 26 
8   8 2016-07-03 1.5120004 27 
9   9 2016-07-04 0.5564032 28 
10  10 2016-07-05 0.4839012 29 

在一個小側面說明,這是一個最好的做法不是命名您的數據的「數據」,因爲,從令人困惑的旁白,還有那在默認情況下加載到地球環境的函數命名的數據。

+1

工作完美,謝謝! – Clover

+0

@Clover高興地幫助,很高興它的工作 –