rm(list = ls()) install.packages("Rfacebook") install.packages("dplyr") library(Rfacebook) library(dplyr) token <- "EAACEdEose0cBAL1CTFZBLGLDNa6WxoZBETepaWc9wihMgvMcO6MZCjDyoM82W9xk6ZBST39N6FAmUOFNWRas54cMPZA4QTeQRyGeDMt8Fk2egCtTJX4DEFDBJYJcBZBMNYvfG9wuD5LmhN7X0hdBAxdUK8nMOZCYEt2rUTPRIxZCI4sKs2J2ttZArHZBjzUqZCpvZCwZD" my <- getUsers("me", token , private_info = TRUE) my$name my$id all_post <- getPage(my$id,token, since='2017/06/01', until='2017/08/19',n=300) str(all_post) all_post$created_time<-as.POSIXct(all_post$created_time, format="%Y-%m-%dT%H:%M:%S%z") #轉???格? all_post$created_time[1:5] all_post$created_Date<-as.Date(all_post$created_time) all_post$created_Date[1:5] all_post$created_Hour<-substr(all_post$created_time,12,13) all_post$created_Hour[1:5] str(all_post) View(all_post) head(all_post) write.csv(all_post,file="D:/chilo/all_post.csv") like_trend <- all_post[,c(4,9,12)] list(created_Date=like_trend$created_Date) like_trend <- aggregate(like_trend[,2],by=list(like_trend$created_Date),FUN=sum) head(like_trend) like_trend <- all_post[,c(4,9,12)] like_trend <- aggregate(like_trend[,2],by=list(created_Date=like_trend$created_Date),FUN=sum) head(like_trend) write.csv(like_trend,file="D:/chilo/like_trend.csv") install.packages("ggplot2") library(ggplot2) ggplot(data=like_trend,aes(x=created_Date, y=x)) + #設?x軸y? geom_line(colour="#FF9999") + #??畫線???色 geom_point(colour="green") + #??畫點???色 geom_text(aes(label = x),size = 3.5) + #?要?出每個??數? ggtitle(paste("Likes Trend")) #設?????? #??哪類??貼?????人???? like_type <- all_post[,c(5,9,12)] like_type <- aggregate(like_type[,2],by=list(type=like_type$type),FUN = sum ) like_type #??type????? ggplot(like_type) + geom_bar(aes(x="",y=x,fill=type), stat = "identity") + coord_polar("y", start=0) slices <- like_type$x #]wCӮΪ lbls <- like_type$type #]wCӮΪ pct <- round(slices/sum(slices)*100) # pCΦʤ lbls <- paste(lbls, pct) lbls <- paste(lbls,"%",sep="") # W[% Ÿ pie(slices, labels = lbls, col=rainbow(length(lbls)), main="Pie Chart of Like type") like_type <- all_post[,c(5,9,12)] like_type_mean<- aggregate(like_type[,2],by=list(type=like_type$type),FUN = mean ) like_type_mean #第??段:畫?你????人???雲 #第?步?????post??出來?其中????post??like資??這是跑?久??? post_total <- lapply(all_post$id, function(x){ post <- getPost(post = x, token = token) post }) post_total[1:9] post_total[[1]]$post dim(post_total[[1]]$post) post_total[[1]]$post[1:3] #將???likes???在一? nrow(all_post) all_likes=NULL post_counts<-c(1:nrow(all_post)) for (i in post_counts) { all_likes <- c(all_likes, post_total[[i]]$likes[,1]) } str(all_likes) ## chr [1:3559] "Queenie Chen" "Otter Lin" "Lucy Chen" ... #第?步,整??????? like_rank<-as.data.frame(table(all_likes)) #?table算頻??????dataframe like_rank<-arrange(like_rank,desc(Freq)) #?dplyr??arrange??新???? head(like_rank) #??後??畫?????人???雲 install.packages("RColorBrewer") install.packages("wordcloud") library(RColorBrewer) library(wordcloud) par(family='Heiti TC Light') #??為??中????設定??? wordcloud(like_rank$all_likes, like_rank$Freq, min.freq=20, scale=c(3,.8), rot.per=0, fixed.asp=FALSE, colors=brewer.pal(8, name="Set2"), random.color=TRUE) wordcloud(like_rank$all_likes, like_rank$Freq, min.freq=15, scale=c(3,.8), rot.per=0, fixed.asp=FALSE, colors=brewer.pal(8, name="Set2"), random.color=TRUE) wordcloud(like_rank$all_likes, like_rank$Freq, min.freq=10, scale=c(3,.8), rot.per=0, fixed.asp=FALSE, colors=brewer.pal(8, name="Set2"), random.color=TRUE) ####################################### token <- "EAACEdEose0cBAFMTXUy1NQKhKy0ZAhG90yAjVdFvJ1PNLZCZAzf8Guc3sh9umZBDv9cuBzuZAqkflyWzhj2iIA2PQyuYEdBgeUTxHxkC1TSZCsDoet47uKjWZBxtEInDysugnGc5kDdt9N5DV2qfsWcN159araDbz2zC5NA3LuCvJgZCPmQGaNZAhOZC9TArMllGkZD" #以??公???樂為例?inblooom page.id<-"1780852262130675" #??id存起? all_post_f<- getPage(page.id,token, '2017/06/01', until='2017/10/22',n=1000) all_post_f$created_time<-as.POSIXct(all_post_f$created_time, format="%Y-%m-%dT%H:%M:%S%z") #轉???格? #????要這個?件,R?????件好幫??? install.packages("lubridate") library(lubridate) all_post_f$created_month<- substr(all_post_f$created_time, 6,7) #?增?份? str(all_post_f) View(all_post_f) head(all_post_f) write.csv(all_post_f,file="D:/chilo/all_post_f.csv") like_trend_f <- all_post_f[,c(4,9,12)] like_trend_f <- aggregate(like_trend_f[,2],by=list(created_month=like_trend_f$created_month),FUN=sum) head(like_trend_f) like_trend_f$month<-as.numeric(like_trend_f$created_month) head(like_trend_f) ggplot(data=like_trend_f,aes(x=month, y=x)) + #設?x軸y? geom_line(colour="#FF9999") + #??畫線???色 geom_point(colour="green") + #??畫點???色 geom_text(aes(label = x),size = 3.5) + #?要?出每個??數? ggtitle(paste("Likes Trend")) #設?????? ggplot(like_trend_f, aes(x=month,y=x)) + #設?X軸Y? geom_line(colour="#009E73") + #線??層 geom_bar(stat = "identity", fill = "#E69F00") #?條???層 c("#999999", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7") post_total_f <- lapply(all_post_f$id, function(x){ post <- getPost(post = x, token = token) post }) all_likes_f=NULL post_counts_f<-c(1:nrow(all_post_f)) for (i in post_counts_f) { all_likes_f <- c(all_likes_f,post_total_f[[i]]$likes[,1]) } like_rank_f<-as.data.frame(table(all_likes_f)) like_rank_f<-arrange(like_rank_f,desc(Freq)) head(like_rank_f) library(RColorBrewer) library(wordcloud) par(family='Heiti TC Light') #??為??中????設定??? wordcloud(like_rank_f$all_likes, like_rank_f$Freq, min.freq=20, scale=c(3,.8), rot.per=0, fixed.asp=FALSE, colors=brewer.pal(8, name="Set2"), random.color=TRUE)