HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    r怎么運(yùn)行數(shù)據(jù)分析(怎么用r分析數(shù)據(jù))

    發(fā)布時(shí)間:2023-04-13 18:29:42     稿源: 創(chuàng)意嶺    閱讀: 148        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于r怎么運(yùn)行數(shù)據(jù)分析的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com。

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    r怎么運(yùn)行數(shù)據(jù)分析(怎么用r分析數(shù)據(jù))

    一、使用R語言完成一個(gè)關(guān)于血糖的數(shù)據(jù)分析,要求以及部分截圖如下,求用的到哪些函數(shù)和要點(diǎn)

    函數(shù)是對一些程序語句的封裝。換句話說,編寫函數(shù),可以減少人們對重復(fù)代碼書寫,從而讓R腳本程序更為簡潔,高效。同時(shí)也增加了可讀性。一個(gè)函數(shù)往往完成一項(xiàng)特定的功能。例如,求標(biāo)準(zhǔn)差sd,求平均值,求生物多樣性指數(shù)等。R數(shù)據(jù)分析,就是依靠調(diào)用各種函數(shù)來完成的。但是編寫函數(shù)也不是輕而易舉就能完成的,需要首先經(jīng)過大量的編程訓(xùn)練。特別是對R中數(shù)據(jù)的類型,邏輯判別、下標(biāo)、循環(huán)等內(nèi)容有一定了解之后,才好開始編寫函數(shù)。 對于初學(xué)者來說,最好的方法就是研究現(xiàn)有的R函數(shù)。因?yàn)镽程序包都是開源的,所有代碼可見。研究現(xiàn)有的R函數(shù)能夠使編程水平迅速提高。

    二、R為什么比Excel更適合做數(shù)據(jù)分析

    我從事數(shù)據(jù)分析工作已經(jīng)有十年之久。最初是出于工作需要,我的經(jīng)理給我一堆數(shù)據(jù),我需要處理這些數(shù)據(jù)。當(dāng)時(shí)我一直使用的工具是 Excel,因?yàn)檫@是我熟練掌握的一款工具。三年前,我開始接觸到 R,一開始因?yàn)楣δ芴喽鴪?jiān)決抵制使用。后來我開始琢磨如何使用?,F(xiàn)在我基本不怎么使用 Excel 了。

    這只是我個(gè)人的觀點(diǎn),但是如果你要分析數(shù)據(jù),R 更勝任這項(xiàng)任務(wù)。下面來說說為什么 R 更適合數(shù)據(jù)分析。

    R與Excel在數(shù)據(jù)分析當(dāng)中的優(yōu)劣勢對比

    這兩款工具的使用方法截然不同。使用 Excel 時(shí),可以通過鼠標(biāo)點(diǎn)擊完成大部分工作,你可以訪問界面內(nèi)不同位置的各種工具。因此 Excel 非常便于使用(熟能生巧),但是用 Excel 處理數(shù)據(jù)非常費(fèi)時(shí),而且如果接手一個(gè)新項(xiàng)目,你必須單調(diào)地重復(fù)這些流程。使用 R 時(shí),則通過代碼完成所有操作。你把數(shù)據(jù)載入內(nèi)存,然后運(yùn)行腳本來研究并處理數(shù)據(jù)。這個(gè)工具可能不夠人性化,但是有以下幾點(diǎn)好處。

    我認(rèn)為,從概念上來說,R 更便于使用。如果你在處理多列數(shù)據(jù),雖然你只是在處理單個(gè)任務(wù),但是卻會看到所有的數(shù)據(jù)。而使用 R 時(shí),數(shù)據(jù)都在內(nèi)存中,只有調(diào)出數(shù)據(jù)才能看到。如果你在轉(zhuǎn)換或計(jì)算,你會處理相關(guān)列或行的子集,其他所有數(shù)據(jù)都在后臺。我覺得這樣更便于關(guān)注手頭的任務(wù)。完成任務(wù)后,可將其保存在某個(gè)數(shù)據(jù)幀中,其中只包含所需的列或行數(shù)據(jù)。你建立了正確的數(shù)據(jù)集,可解決當(dāng)前的問題。這樣做看似無關(guān)緊要,但實(shí)際上大受裨益。

    借助 R,就可以對其他數(shù)據(jù)集輕松重復(fù)相同的操作。因?yàn)樗袛?shù)據(jù)都是通過代碼進(jìn)行處理和研究,因此對新的數(shù)據(jù)集執(zhí)行相同的操作也就輕而易舉了。使用 Excel 時(shí),大多數(shù)操作都是通過鼠標(biāo)點(diǎn)擊實(shí)現(xiàn),雖然用戶體驗(yàn)不錯(cuò),但對新的數(shù)據(jù)重復(fù)操作卻非常費(fèi)時(shí)而枯燥。而 R 只需載入新的數(shù)據(jù)集,然后再次運(yùn)行腳本即可。

    實(shí)際上,用代碼操作也便于診斷并共享你的分析結(jié)果。使用 Excel 時(shí),大多數(shù)的分析結(jié)果都基于內(nèi)存(數(shù)據(jù)透視表在這里,公式編輯器在另一個(gè)表格上等)。而在 R 中,通過代碼執(zhí)行所有操作,一目了然。如果你在修正一個(gè)錯(cuò)誤,你很清楚在哪里操作,而如果你需要共享分析結(jié)果,只需復(fù)制粘貼代碼即可。在線查找?guī)椭鷷r(shí),你能準(zhǔn)確說明所用數(shù)據(jù),并提出具體的問題。事實(shí)上,大多數(shù)時(shí)候,你在線提問時(shí),人們都是直接貼出準(zhǔn)確的代碼,來解決你的問題。

    R 中的項(xiàng)目組織更簡單。在 Excel 中,我要準(zhǔn)備一系列表格,可能還要準(zhǔn)備多個(gè)工作簿,然后適當(dāng)命名,而且各文件名不得重復(fù)。我的項(xiàng)目備注分別保存在各個(gè)文件中。我的 R 項(xiàng)目組織單獨(dú)設(shè)有一個(gè)文件夾,我處理過的所有內(nèi)容都放在其中。清理數(shù)據(jù)、探索性圖表及模型。這樣便于我理解和查找,也為與我一起工作的其他人提供方便。當(dāng)然,Excel 也能做到井井有條。我覺得 R 的簡潔性更便于使用。

    上述幾點(diǎn)只能說是錦上添花,而并不是必不可少。在沒有這些功能之前,我也用了好幾年 Excel,你應(yīng)該也一樣?,F(xiàn)在,我想講講 R 和 Excel 真正的區(qū)別。我想說的是,除了以上那些花哨的小優(yōu)勢之外,R 更適合用于數(shù)據(jù)分析。原因如下。

    你可以把任何數(shù)據(jù)載入 R。數(shù)據(jù)的保存位置或保存形式并不重要。你可以載入 CSV 文件,也可以讀取 JSON,或者執(zhí)行 SQL 查詢,抑或提取網(wǎng)站。你甚至還可以在 R 中通過 Hadoop 處理大數(shù)據(jù)。

    R 是一個(gè)完整的工具集,使用的是數(shù)據(jù)包。在分析數(shù)據(jù)時(shí),R 比 Excel 更實(shí)用。你可使用 R 執(zhí)行數(shù)據(jù)管理、分類和回歸,也可以處理圖片,并執(zhí)行其他所有操作。如果機(jī)器學(xué)習(xí)是你的專業(yè),那能想到的任何算法都是小菜一碟。目前,R 可用的數(shù)據(jù)包逾 5,000 個(gè),因此無論你要處理什么類型的數(shù)據(jù),R 都能應(yīng)付自如。

    R 的數(shù)據(jù)可視化效果非常卓越。說句實(shí)話,Excel 的圖表非常出色,簡單易懂。但 R 的效果更好。我覺得這是 R 最實(shí)用的功能之一。借助 ggplot2,你可以快速創(chuàng)建所需的各種圖表,并根據(jù)圖表形狀自行調(diào)整。在你熟悉了如何用 ggplot2 創(chuàng)建一個(gè)圖表后,任何其他圖表都不在話下。ggplot2 還能制作更多類型的圖表。你能用 Excel 創(chuàng)建散點(diǎn)圖矩陣嗎?用 R 就能輕松創(chuàng)建這種矩陣,CDF plot 也是如此。Excel 棋差一招。

    Git 版本控制。我一向習(xí)慣保存多個(gè)版本的分析結(jié)果。Git 是至今為止我找到的最好用的工具。我使用 RStudio 作為編輯器,其支持項(xiàng)目。創(chuàng)建一個(gè)項(xiàng)目倉庫,然后你就能跟蹤數(shù)據(jù)研究的不同版本。你可以創(chuàng)建不同版本的 Excel 文件,但是這些保存的二進(jìn)制文件無法顯示相互之間的更改部分。而 R 非常簡單。

    我已經(jīng)說了很多理由??傊?,Excel 是一款不錯(cuò)的數(shù)據(jù)分析工具。我相信它能不負(fù)眾望完成所有任務(wù)。但是,如果你只有這一款工具,則會大大影響你的工作效率。相比之下,R 更好用,而且提供的工具集模塊更完整。而缺點(diǎn)在于不是非常易于上手,用戶一開始相對要花很多時(shí)間學(xué)習(xí)使用。如果堅(jiān)持下去,就會有所收獲,不僅對數(shù)據(jù)更了解,還提高了自己的能力。

    三、R語言數(shù)據(jù)分析-tidyverse

    最近學(xué)習(xí)了一下飛哥的《R語言進(jìn)階筆記》( https://dengfei2013.gitee.io/r-language-advanced/ ),干貨滿滿。下面是我總結(jié)的精簡版,方便遺忘時(shí)快速查詢。

    四、數(shù)據(jù)分析之美 決策樹R語言實(shí)現(xiàn)

    數(shù)據(jù)分析之美:決策樹R語言實(shí)現(xiàn)

    R語言實(shí)現(xiàn)決策樹

    1.準(zhǔn)備數(shù)據(jù)

    [plain] view plain copy

    > install.packages("tree")

    > library(tree)

    > library(ISLR)

    > attach(Carseats)

    > High=ifelse(Sales<=8,"No","Yes") //set high values by sales data to calssify

    > Carseats=data.frame(Carseats,High) //include the high data into the data source

    > fix(Carseats)

    2.生成決策樹

    [plain] view plain copy

    > tree.carseats=tree(High~.-Sales,Carseats)

    > summary(tree.carseats)

    [plain] view plain copy

    //output training error is 9%

    Classification tree:

    tree(formula = High ~ . - Sales, data = Carseats)

    Variables actually used in tree construction:

    [1] "ShelveLoc" "Price" "Income" "CompPrice" "Population"

    [6] "Advertising" "Age" "US"

    Number of terminal nodes: 27

    Residual mean deviance: 0.4575 = 170.7 / 373

    Misclassification error rate: 0.09 = 36 / 400

    3. 顯示決策樹

    [plain] view plain copy

    > plot(tree . carseats )

    > text(tree .carseats ,pretty =0)

    4.Test Error

    [plain] view plain copy

    //prepare train data and test data

    //We begin by using the sample() function to split the set of observations sample() into two halves, by selecting a random subset of 200 observations out of the original 400 observations.

    > set . seed (1)

    > train=sample(1:nrow(Carseats),200)

    > Carseats.test=Carseats[-train,]

    > High.test=High[-train]

    //get the tree model with train data

    > tree. carseats =tree (High~.-Sales , Carseats , subset =train )

    //get the test error with tree model, train data and predict method

    //predict is a generic function for predictions from the results of various model fitting functions.

    > tree.pred = predict ( tree.carseats , Carseats .test ,type =" class ")

    > table ( tree.pred ,High. test)

    High. test

    tree. pred No Yes

    No 86 27

    Yes 30 57

    > (86+57) /200

    [1] 0.715

    5.決策樹剪枝

    [plain] view plain copy

    /**

    Next, we consider whether pruning the tree might lead to improved results. The function cv.tree() performs cross-validation in order to cv.tree() determine the optimal level of tree complexity; cost complexity pruning is used in order to select a sequence of trees for consideration.

    For regression trees, only the default, deviance, is accepted. For classification trees, the default is deviance and the alternative is misclass (number of misclassifications or total loss).

    We use the argument FUN=prune.misclass in order to indicate that we want the classification error rate to guide the cross-validation and pruning process, rather than the default for the cv.tree() function, which is deviance.

    If the tree is regression tree,

    > plot(cv. boston$size ,cv. boston$dev ,type=’b ’)

    */

    > set . seed (3)

    > cv. carseats =cv. tree(tree .carseats ,FUN = prune . misclass ,K=10)

    //The cv.tree() function reports the number of terminal nodes of each tree considered (size) as well as the corresponding error rate(dev) and the value of the cost-complexity parameter used (k, which corresponds to α.

    > names (cv. carseats )

    [1] " size" "dev " "k" " method "

    > cv. carseats

    $size //the number of terminal nodes of each tree considered

    [1] 19 17 14 13 9 7 3 2 1

    $dev //the corresponding error rate

    [1] 55 55 53 52 50 56 69 65 80

    $k // the value of the cost-complexity parameter used

    [1] -Inf 0.0000000 0.6666667 1.0000000 1.7500000

    2.0000000 4.2500000

    [8] 5.0000000 23.0000000

    $method //miscalss for classification tree

    [1] " misclass "

    attr (," class ")

    [1] " prune " "tree. sequence "

    [plain] view plain copy

    //plot the error rate with tree node size to see whcih node size is best

    > plot(cv. carseats$size ,cv. carseats$dev ,type=’b ’)

    /**

    Note that, despite the name, dev corresponds to the cross-validation error rate in this instance. The tree with 9 terminal nodes results in the lowest cross-validation error rate, with 50 cross-validation errors. We plot the error rate as a function of both size and k.

    */

    > prune . carseats = prune . misclass ( tree. carseats , best =9)

    > plot( prune . carseats )

    > text( prune .carseats , pretty =0)

    //get test error again to see whether the this pruned tree perform on the test data set

    > tree.pred = predict ( prune . carseats , Carseats .test , type =" class ")

    > table ( tree.pred ,High. test)

    High. test

    tree. pred No Yes

    No 94 24

    Yes 22 60

    > (94+60) /200

    [1] 0.77

    以上就是關(guān)于r怎么運(yùn)行數(shù)據(jù)分析相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    pr怎么添加logo(pr怎么添加logo圖片)

    華為mobilepartner怎么用(華為mobile手機(jī))

    ChatGTP怎么念(chattr怎么讀)

    四川花園景觀設(shè)計(jì)方案(四川花園景觀設(shè)計(jì)方案圖片)

    裝飾裝修龍頭股