2016-01-06 80 views
0

我在rfacebook的幫助下從facebook的API中提取數據。我使用支持向量機進行情感分析,將每條消息分類爲正面或負面。如何將連續數據彙總到日常數據中R

我擁有的數據現在看起來像

fromID fromName  Message  createdTime     SVM Label 

122233 Max Muster great game 2014-12-28T20:57:04+0000   1 
133425 Hilde Mash hate it! 2014-12-28T23:54:12+0000   2 
142233 Fred Ast  awesome  2014-12-29T22:37:08+0000   1 
139425 Fred Fein hate it! 2014-12-28T12:21:06+0000   2 

我第一次運用

df$createdTime = strptime(df$createdTime,format="%Y-%m-%dT%H:%M:%S%z")

改變了createdTime列到XTS格式然後我第一次嘗試彙總每天的評論數與

number = apply.daily(df, sum) 

但是,這看毫秒不工作。

號碼只由NA組成。

我嘗試了其他的東西,但它不工作。

充其量我最想擁有一個數據框架來統計每天有多少個1和2個SVM標籤。但是,我不知道如何做到這一點。

這裏的任何幫助將非常感謝!

非常感謝您的善意幫助!

回答

0

我不知道XTS封裝,所以我改用POSIXct格式。

假設你的數據幀被稱爲 「DF」:

df$Time = as.POSIXct(df$createdTime, format = "%Y-%m-%dT%H:%M:%S+0000") 
library(dplyr) 
df2 = df %>% 
    mutate(Day = as.POSIXct(trunc.POSIXt(Time, units = "days"))) %>% 
    group_by(Day, SVMLabel) %>% 
    summarise(Count = n()) 

print(df2) 

對於上述數據,這給了我:

來源:本地數據幀[3×3] 組:天[? ]

 Day  SVMLabel Count 
    (time)   (int) (int) 
1 2014-12-28  1  1 
2 2014-12-28  2  2 
3 2014-12-29  1  1 

這對我來說看起來是正確的。

+0

非常感謝!這也非常有幫助,並且非常好! – rkuebler

0

使用dplyr,你可以這樣做:

library(dplyr) 
df$Date <- as.Date(df$createdTime) 
summary_df <- df %>% group_by(Date) %>% summarise(class1 = sum(SVMLabel == 1), class2 = sum(SVMLabel == 2)) 

另外,您也可以使用table命令,並轉換爲數據幀如下:

df$Date <- as.Date(df$createdTime) 
summary_df <- as.data.frame(table(df$Date, df$SVMLabel)) 
+0

非常感謝!這幫助我很多! – rkuebler