大家用 R 語言做過哪些好玩的事情?


男票也喜歡R,於是有一天,他忽然屁顛屁顛跑來告訴我,
寶寶你知不知道R裡面有一個package,會不停的誇你^o^

我0.0

這個package叫praise,
於是就是
&>&>&>praise( )
you are awesome
&>&>&>praise( )
you are outstanding


R語言的ggplot2吊得不行啊,實在是愛不釋手哇,好吧空談誤國,上圖為先!

R語言的數據可視化基本全仗ggplot2了(不要跟我提什麼R語言有四套可視化語法,其他三套都是雞肋),所以今天展示的案例全部都是基於ggplot2的:

這是剛學的時候臨摹的商務圖表:

後來開始找一些信息圖模仿:

因為喜歡數據地圖這個領域,所以練習了很多:

後來小有名氣了,開始自己攬活掙零花錢:

學習了R語言的rvest和Rcurl等爬蟲框架開始爬數據做一些比較務正業的數據分析:

腦洞我也有很多哈哈哈!

你以為我只會R嗎(Excel也會一點兒),其實我的PPT也做的不錯的哦!

上面圖太大了費流量,(主要怕你手機刷不開),所以放個小點兒的縮略圖:

好了,發完圖趕緊跑,害怕警察叔叔把我帶走~

====================

這些案例是公眾號「數據小魔方」里推送過代碼和數據的!

===================

容我再放一條鏈接:

Excel到底有多厲害!

https://www.zhihu.com/question/27588491/answer/198887087


寫了一個打dota天梯選人的程序包,叫RDota,不過犯懶半年沒更新了。。。


當然是做可視化。
都是動的,知乎不支持gif...

忘記貼作圖代碼:
可視化篇:R可視化--map圖 - yycc - 博客頻道 - CSDN.NET
可視化篇:R可視化--遷徙/通勤圖 - yycc - 博客頻道 - CSDN.NET真巧,該開源包作者在樓下,@Chiffon Lang,哈哈。


下面這篇文章的爬蟲、統計分析、作圖都是用R語言完成的,雖然從分析上來說很不嚴謹,但也算一個比較有意思的東西。

————————————————————————————————————

國產電影、電視劇市場欣欣向榮,可一直佳片難求。攢論文搬磚之餘,我爬取了豆瓣電影上的相關數據進行了分析,想知道我國近些年來,影視作品質量如何,哪些演員一直在爛片的坑裡越陷越深。


數據抓取規則就是把2000年到2016年的豆瓣電影條目里有「中國」標籤的全薅下來,事後再對數據進行相應的清洗,比如剔除信息缺失嚴重的樣本,篩掉綜藝節目、脫口秀、晚會演唱會等。

時間有限,水平也有限,不敢說我抓取到的數據覆蓋了該時段所有的影視作品,所以,就假設我的數據是對總體的一個簡單隨機抽樣吧,也不指著這個數據發paper,玩玩唄。

  1. 國產影視作品平均質量一路下滑

首先根據樣本數據畫了個散點圖,橫軸表示時間,縱軸表示豆瓣評分,散點的大小表示該作品的評論人數,點越大,表明評論人數越多。紅色曲線展示了2000年1月到2016年12月,每個月上映的所有作品平均分的走向。

從這張圖可以明顯看出,2000年到2016年,國產影視作品的平均分走向是曲折的、迂迴的,但總體趨勢是倒退的、下降的。


縱然,以豆瓣的平均分作為每個時段的評價指標有很大的局限性和片面性。對於觀眾而言,一個月即使爛片扎堆,只要還有一部不錯的作品,人們就不會對這個月的觀影體驗打太低的分。不過,平均分作為一種總體評價指標也有重要的可取之處,至少它會提醒我,這個月真的有很多爛片。


下面這個視頻展示了,2000到2016年的192個月里每個月的影視作品得分分布,以及當月的平均分。

2000-2016年國產影視作品豆瓣評分變化趨勢 - 騰訊視頻 https://v.qq.com/x/page/m03641ph21t.html


為了增加動態效果,同時也為了減少點和點之間的重疊,在視頻中,我給散點增加了0.2個單位範圍的隨機擾動,所以每一幀圖同一個點的位置可能存在細微差別。


這條時間序列曲線可能存在某種固定的周期波動,有時間可以再來分析下它的長期趨勢和周期變化。

2. 限制級題材片水平有待提高

豆瓣上的電影都會有相應的類型標籤,在我抓取到的樣本數據中,共有30個類別。下面我們就來看看平均得分最高和最低的五個類別吧。


話說,排名在上面的可以說Top,下面的可以說Bottom嗎?我英語不好,請教下大家。

話不多說,上圖。

得分最高的5個類型是戲曲、紀錄片、西部、短片、歷史。天朝還是有很多優秀的紀錄片和紀錄片導演的,像前不久,范儉執導的《搖搖晃晃的人間》和王久良的《塑料王國》就在阿姆斯特丹紀錄片電影節上獲獎。


另外,中國歷史題材的電視劇也有不少佳作,《大秦帝國》、《大明王朝1566》、《康熙王朝》、《走向共和》、《大宅門》等在豆瓣上都有很好的口碑。導演用心、劇本紮實、演員有實力,評價自然不會差。


得分最低的5個類型是災難、冒險、恐怖、情色、驚悚。個人感覺,上世紀八九十年代,中國大陸有很多恐怖片確實蠻嚇人的,之前網上流傳的89年版的封神榜也是極其滲人。


你們感受一下。

梁麗版封神榜01a http://www.tudou.com/listplay/yvomZGzmx-4.html

3. 最受關注的演員、導演


我把每位演員參演的所有作品的評價人數進行累加,得到的評價人數之和就是所謂的「關注熱度」。


在累加的過程中,每部作品對所有參演演員的權重都是一樣的,也就是說不區分主角和配角。當然,這種計算方法有值得商榷之處,因為你當時看這部片子時只是沖著你愛豆去的,並不care其他演員,不過,你必須承認的一點是,他們確實與你混了個臉熟。


如果把「關注熱度」改成「作品受關注熱度」應該就沒有問題了,前者側重於演員本身,後者側重於該演員參演的作品。或者,可以把主演一欄的前兩名或前四名演員作為「主演」,賦予更高的權重再計算「關注熱度」。


下圖列出了最受關注的演員前20名,同時列出了其參演的所有影視作品的平均得分。

最受關注的演員前5名是,林雪、黃秋生、陳坤、劉德華、古天樂。林雪這個名字,乍一聽可能陌生,但他那張臉,你應該再熟悉不過了。


吶,就是他。

導演方面,馮小剛、劉偉強、麥兆輝、杜琪峰、張藝謀是最受關注的5位導演。演員林雪正好是杜琪峰執導影片中的常客,導演的作品如此受關注,演員自然也沾光。

在列出的這20位導演中,姜文、王家衛、寧浩的作品平均得分最高。又要看的人多,還要大家都說好,確實不是件容易的事呢。


4. 到底誰演了爛片


描述完了,就想跑個回歸。


線性模型中以豆瓣評分作為因變數,另外再加倆logistic模型,根據豆瓣評分劃定下「及格線」和「爛片」標準。


在我的樣本中,豆瓣評分均分是6.25,那麼就以6.25分作為及格線,得分大於6.25分的作品才算及格。


但把得分低於或等於6.25分的作品稱作爛片似乎有點嚴苛,所以我以平均分減去一個標準差的結果(4.29)作為劃定爛片的標準。


根據個人的興趣和喜好,我加入了以下導演、演員和其他控制變數。

在導演和演員變數方面,黃曉明、楊洋、呂中獲得了在三個模型中都顯著的殊榮。不過呂中老師的在三個模型中估計係數的符號與另外兩位演員剛好是相反的。


以黃曉明為例,他在OLS模型中的估計係數為-0.557,在0.05的水平上顯著,這表示在其他條件都不改變的情況下,一個影視作品若有黃教主參演,那麼它的豆瓣評分將平均降低0.557分。剩下兩個模型不解釋了。


楊洋同學同理,不再贅述。值得一說的是,呂中老師在模型中的估計係數剛好與其他兩位演員相反,這表示,一個影視作品若有呂中老師參演,那麼它的評分將平均提高0.73分,同樣根據剩下兩個模型,我們也可以判斷,呂中老師參演的作品其豆瓣得分更有可能在及格線以上,以及更不可能成為爛片。


所以,在我選取的這些演員中,與爛片顯著相關,以及參演作品得分明顯較低的演員有:黃曉明、楊洋、陳學冬、楊穎、范冰冰等。


而參演作品豆瓣評分明顯較高的演員有:呂中、倪大紅、陳寶國、陳道明等。


當然,這裡我們不能進行因果推斷,即認為某某參演的電影或電視劇就有可能成為爛片,以上分析只是體現了一種相關性,也就是說在既定事實中,某某參演的作品確實評分較低,但這種低評分或許有其他原因導致也未可知。:)

—————————————————————————————————————

分析極其不嚴謹,僅僅是腦洞之作,歡迎大家指正。

打個廣告。

微信公眾號:一尺之棰
莊子曰:一尺之棰,日取其半,萬世不竭。

其他回答:

社會學研究哪家強? - 知乎專欄

中國考取進士最多的地方竟然是! - 知乎專欄


同樓上,天梯選人是個好問題,我也是很久以前用ShinyR寫了個網頁:http://dota2.benyuwang.com,也是實現的天梯選人推薦問題。後來介紹給一個學計算機視覺的同學,人家寫了個app,手機照相選人推薦,用起來簡直不要太開心~~ (我用的是http://shinyapps.io的免費伺服器,每月有一定的訪問量限制,如果大家點多了就跪了,因為是自己寫的玩的,也沒什麼動力換了)


期權波動率、交易策略信號實時監視器,繪製動畫監視4個月份所有合約的bid1,ask1波動率微笑,出現不同交易策略的信號的時候背景變色,顏色深淺根據計算出來的期望收益大小變化。

周果毅
CMU校友把這麼trial的東西拿出來秀,混成這樣不覺得low么,或者你其實是西太畢業的。

有人指出這個東西很low。沒錯的確不是很高科技的東西,只是用R實現個這個小工具我覺得很好玩而已。程序員不是隨便就能調來幫你開發個監視器的,自己動手寫個百來行代碼做個小工具何樂不為?請注意題目,不是「大家用 R 語言做過哪些牛逼的事情」 而是 「大家用 R 語言做過哪些好玩的事情?」


1.用shiny+Rmarkdown寫Assignment報告,在文檔中使用shiny,既裝逼又實用。
2.做數據分析研究時用shiny+dashboard+dygraph開發一個可交互的數據分析應用。方便進行探索性的數據分析,可以選擇變數,可以拖動時間軸,可以放大縮小時間範圍或者數值y的範圍,觀察數據更方便。
3.文本挖掘:Rwordseg+tm+wordcloud。對小說《花千骨》進行分詞和詞雲繪製,把妹子神器。詳見https://github.com/brightbird/brightbird.github.io/blob/5b77fa30b57df703ca806eedafd8ec71477b4eaa/_posts/2015-08-02-Text-mining-hua-qian-gu.Rmd
《文本挖掘之一口氣讀完花千骨》
如圖:

#########################################
## 居然還有人點贊,果斷加點乾貨! ##4.使用Rwebdriver包和selenium爬取l京東商城的幾乎所有品牌的手機信息:


昨天情人節的時候有人這麼玩:

(我不會插入代碼)

a=rnorm(1e6)
b=rnorm(1e6)
c=abs(a)+b
plot(a,c,col=2,main="happy V day")


小時候用R寫了個貪食蛇算嗎?


覺得wordcloud不好玩,寫了個wordcloud2...

@TomHall的xgboost更好玩,為啥邀請我


用as.Date()計算戀愛天數……


感謝統計學教授的小作品!

除了彩虹的配色很像街邊髮廊,其他的都滿意!


不要跟我提什麼R語言有四套可視化語法,其他三套都是雞肋

我對前面評論這句話表示呵呵呵。

試問ggplot2他爹是誰?ggplot2和lattice都是基於grid。現在我們ggplot2出圖後各種高級玩法、以及我們自己寫ggplot2圖層,都是用grid。不要天天ggplot2打遍天下無敵手一樣,沒見過世面。

我是ggimage包作者,用ggplot2他爹grid寫ggplot2圖層,就這樣。

ggimage:ggplot2中愉快地使用圖片

要說裝逼,我用pokemon拼出自己名字縮寫,用的就是自己寫的ggimage包:

看完此文, 你也能夠大開腦洞, 上升逼格

上面鏈接這篇文章,寫emojifont包,也是我的作品,允許你在R畫圖時使用emoji。

下面這個用emoji拼出一個蘋果的logo:

學術上的話,比如我的ggtree包,用於進化樹的可視化,Ask me anything about ggtree

學術包結合不務正業的包,比如ggtree+emojifont,用emoji來畫進化樹:

關注我的公眾號biobabble,用R畫上面這些圖,不在話下。因為是包作者,會有一些首發原創作品,並且講解代碼,而不是網上很多看著逼格很高,其實只是跑了別人的示例代碼而已。


簡單的數據可視化,利用文字的大小和顏色表示其出現頻率……別的軟體好像也可以做?但在R裡面嘛,自己覺得這是最有意思的了……別的一點都不好(hui)玩,哼~


讓它空循環了一億次,死機了。


最近在做圖像去噪,然後就用自己寫了一個包,局部線性核估計去燥的

第一張圖是原圖,第二張圖是加噪的,第三張圖是去噪之後的

================================================

我知道這個例子只有邊界,沒角,沒紋理的~~~~

我也知道可能有現成的包!!但是我偏要自己寫~~~~


在我看來R的功能太強大了,從爬蟲,到數據處理,再到數據可視化真的是可以做到一步到位。比如下面這篇文章時我之前在我的公眾號『跟著菜鳥一起學R語言』上面發的一篇文章。

作為我國社會主義事業的建設者和接班人,不僅要繼承前輩開創的偉大事業,更要推進中國特色社會主義的航船繼續破浪前進。

這不,為了響應習大大開展的「兩學一做」學習教育,我不僅認真學習共產黨黨章黨規,學習貫徹習近平總書記系列重要講話精神,爭做一名合格黨員。今天我就要用自己的技術來學習今年的《政府工作報告》。

今天我們要用爬蟲來爬取這篇文章,然後進行文本分詞,再到文本可視化。我們需要使用下面這三個包:

(1)rvest 爬蟲

(2)jiebaR 用於分詞,統計詞頻

(3)wordcloud2 用於對文本進行可視化

1.使用rvest包爬取文章。

首先,我需要對網頁標籤進行查看分析,下面這張

圖就是我用谷歌瀏覽器,對網頁標籤進行分析的過程。

不知道大家有沒有注意到下面這個表簽。我們需要爬取的文字就在這個標籤裡面。

現在我們就開始寫爬取代碼:

  1. library(rvest)
  2. url&<-"http://www.gov.cn/premier/2017-03/16/content_5177940.htm"
  3. web&<-read_html(url,encoding="utf-8") #讀取數據,規定編碼
  4. position&<-web %&>% html_nodes("div.pages_content") %&>% html_text()

%&>%管道函數,將左邊的值賦給右邊函數作為第一個參數的值。

web存儲網頁信息的變數。

然後html_nodes()函數獲取網頁里的相應節點。

最後我們用html_text()函數獲取標籤內的文本信息。

2.使用jiebaR進行分詞,統計詞頻

這是排序之後前6個。

3.使用wordcloud2包進行可視化。

使用jiebaR包統計完詞頻之後,就很容易使用wordcloud2包進行可視化。

作為一名愛國愛黨人事,我們都知道我們的國旗是五星紅旗,所以就用這顆星來代表我的愛國之心吧。那也許就有人要說,你也體現以下你的愛黨之心吧。行,沒問題,接下來我就來體現一下我的愛黨之心。我要把這個五角星形狀改成一張黨徽形狀。只怪自己PS技術太差,所以在網上找了下面這張圖,找這張圖的目的是要將繪製詞雲圖形設置為一個黨徽。

怎麼樣,是不是和黨徽形狀基本一樣。不過細心的小夥伴估計會發現「發展」這個詞沒了,它可是詞頻最高的一個詞啊。我認為原因是我們這個黨徽圖片中各個邊太細,「發展」這個詞的詞頻有太高於其他詞頻才導致這張詞雲裡面沒有「發展」這個詞。「發展」的詞頻是125,差不多是「改革」的詞頻是68的兩倍.為了驗證這個想法,我決定選一個邊更細的形狀。

剛才還有的「改革」,「推進」,「經濟」等詞現在也沒有了。所以證明我的說法基本沒錯。於是我就P了下面這一張圖。把詞繪製在圖片黑色的地方,白色黨徽的地方留下。

這下好了,剛才丟失的詞現在已經回來了,就是不知道中間那塊黑色黨徽那塊你注意到沒有。所以在這個給各位小夥伴提個醒,在用這個包繪製詞雲時,背景圖片不要選擇那些整體邊太細的圖,否則會影響結果。

4.總結

現在,我來總結一下,大家都知道我們黨執政興國的第一要務是——發展。與我們分析的一致。在過去的一年,我們黨仍然以發展作為第一要務,推進「一路一帶」建設,加快創新發展,大力深化改革開放,明確政府職能,不斷完善社會體制,不斷提高服務能力,注重保障和改善民生,增加就業機會,實現經濟的穩定增長。推動各族人民在全面建成小康社會進程中實現共同發展。

如果你對jiebaR分詞或rvest包不太熟悉或者想要看全部代碼的話,可以去我的公眾號 跟著菜鳥一起學R語言,上面看看,那裡我也分享了許多關於R學習的資料。


fun包可以玩掃雷等小遊戲,shiny和ggvis動態可視化裝逼利器,ggvis代碼還相當簡單。animation可以做gif圖,比如monte carlo和統計相關的動態演示。


我用R語言寫過assignment,寫過assignment,還寫過assignment


公司要做word cloud,使用r語言把一個人的輪廓畫成了孫悟空。。。


推薦閱讀:

TAG:機器學習 | 統計 | 計算機科學 | R(編程語言) |