R語言數(shù)據(jù)重塑和導(dǎo)出的方法

本篇內(nèi)容介紹了“R語言數(shù)據(jù)重塑和導(dǎo)出的方法”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、三穗網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、電子商務(wù)商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為三穗等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

今天跟大家簡單介紹下幾個常用的R數(shù)據(jù)操縱技巧——導(dǎo)入(xlsx)、導(dǎo)出及長寬轉(zhuǎn)換!

數(shù)據(jù)導(dǎo)入(xlsx)

之前寫過一篇關(guān)于R導(dǎo)入不同類型數(shù)據(jù)的方式,但是其中只涉及到.csv、.txt以及直接從剪切板復(fù)制。

之所以當時沒有介紹xlsx是因為,excel數(shù)據(jù)文件屬于富文本類型,結(jié)構(gòu)相對復(fù)雜,需要解除特殊包的支持以及java環(huán)境,當時電腦上還沒有配置合適的java環(huán)境。

后來倒騰一個上午,才算弄完(主要是因為R語言系統(tǒng)版本與Java環(huán)境版本需嚴格一致,否則R語言無法自動探測到Java路徑,R語言中的Rjava包便無法加載,而導(dǎo)入xlsx數(shù)據(jù)需要xlsx包的支持,xlsx包則需要Rjava包的支持)。

所以在導(dǎo)入數(shù)據(jù)之前,最好先配置好你系統(tǒng)內(nèi)的java環(huán)境,確保其與你的R語言版本一致。

導(dǎo)入xlsx數(shù)據(jù)所需用到的包:

library("rJava")

library("xlsx")

library("xlsxjars")

以下是導(dǎo)入代碼:

data<-read.xlsx("F:\\數(shù)據(jù)可視化\\數(shù)據(jù)分析\\R\\R語言學(xué)習(xí)筆記\\數(shù)據(jù)整理\\myfile.xlsx",sheetName="file",header=T,encoding='UTF-8')

以上語法中,括號內(nèi)第一個參數(shù)是路徑及文件名,sheetName="file"是指定要導(dǎo)入的excel工作薄內(nèi)的工作表對象,如果你對工作表有命名,一定要指定名稱,如果沒有,指定為默認的工作表名稱(Sheet1、2、3),第三個參數(shù)指定導(dǎo)入數(shù)據(jù)文件的編碼方式(UTF-8)。

可以通過head(data)查看數(shù)據(jù)集的前6條記錄。

R語言數(shù)據(jù)重塑和導(dǎo)出的方法

數(shù)據(jù)重塑(寬轉(zhuǎn)長):

本例就按照導(dǎo)入的成績寬數(shù)據(jù)作為演示案例:

我們想要將以上導(dǎo)入的數(shù)據(jù)轉(zhuǎn)成長數(shù)據(jù),也就是一維表(姓名、科目、分數(shù))

加載數(shù)據(jù)重塑包:

library("reshape2")

mydata <- melt(data, id.vars = "姓名",variable.name = "科目", value.name = "成績")

R語言數(shù)據(jù)重塑和導(dǎo)出的方法

長數(shù)據(jù)立馬就可以呈現(xiàn)出來。

可是以上情況太過理想,通常我們要面對的寬數(shù)據(jù)會很復(fù)雜:

R語言數(shù)據(jù)重塑和導(dǎo)出的方法

倘若我們面臨的輸入如上所示,想要得到的結(jié)果是,姓名、姓名是兩列單獨的字段,不同科目合并成單獨的一個字段。這種結(jié)果就稍顯復(fù)雜。

不過reshape2包仍然可以輕松應(yīng)對這種情況:

mydata2 <- melt(data, id.vars = c("姓名","性別"),variable.name = "科目", value.name = "成績")

R語言數(shù)據(jù)重塑和導(dǎo)出的方法

只需在指定主字段時,給id.vars = c("姓名","性別")定義多組主字段就可以了,多組字段要使用逗號區(qū)隔。

數(shù)據(jù)讀出:

好了,以上數(shù)據(jù)轉(zhuǎn)換完成,現(xiàn)在我們要將數(shù)據(jù)導(dǎo)出了,以下暫且介紹兩種類型(xlsx暫不介紹,還是同樣的原因,富文本需要設(shè)定的參數(shù)太多,需要很多工具支持,目前還沒太搞明白)

導(dǎo)出CSV文件:

write.table (mydata2, file ="F:\\數(shù)據(jù)可視化\\數(shù)據(jù)分析\\R\\R語言學(xué)習(xí)筆記\\數(shù)據(jù)整理\\newdata.csv", sep =",", row.names =FALSE)

運行以上代碼,你的對應(yīng)路徑中瞬間就多出一個名為newdata.csv的數(shù)據(jù)文件:

導(dǎo)出TXT文件:

write.table(mydata2,file="F:\\數(shù)據(jù)可視化\\數(shù)據(jù)分析\\R\\R語言學(xué)習(xí)筆記\\數(shù)據(jù)整理\\newdata.txt" , sep =" ", row.names =FALSE,col.names =TRUE, quote =FALSE)

sep指定變量間分隔符,默認為空格,row.names指定是否輸出行號,col.names指定是否輸出列名,quote指定是否用引號將變量包括。

跑完代碼之后,你對應(yīng)的文件夾目錄下就多對出一個名為newdata的TXT格式數(shù)據(jù)文件,你可以通過導(dǎo)入并查看數(shù)據(jù)導(dǎo)入格式是否正確:

R語言數(shù)據(jù)重塑和導(dǎo)出的方法

data3<-read.table("F:\\數(shù)據(jù)可視化\\數(shù)據(jù)分析\\R\\R語言學(xué)習(xí)筆記\\數(shù)據(jù)整理\\newdata.txt",header=T)

R語言數(shù)據(jù)重塑和導(dǎo)出的方法

“R語言數(shù)據(jù)重塑和導(dǎo)出的方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

本文名稱:R語言數(shù)據(jù)重塑和導(dǎo)出的方法
文章鏈接:http://muchs.cn/article10/ihjpdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、響應(yīng)式網(wǎng)站、網(wǎng)頁設(shè)計公司ChatGPT、動態(tài)網(wǎng)站、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)