本篇內(nèi)容介紹了“R語言數(shù)據(jù)重塑和導(dǎo)出的方法”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、三穗網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、電子商務(wù)商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為三穗等各大城市提供網(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ù)制。
之所以當(dāng)時(shí)沒有介紹xlsx是因?yàn)椋琫xcel數(shù)據(jù)文件屬于富文本類型,結(jié)構(gòu)相對復(fù)雜,需要解除特殊包的支持以及java環(huán)境,當(dāng)時(shí)電腦上還沒有配置合適的java環(huán)境。
后來倒騰一個上午,才算弄完(主要是因?yàn)镽語言系統(tǒng)版本與Java環(huán)境版本需嚴(yá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)的工作表對象,如果你對工作表有命名,一定要指定名稱,如果沒有,指定為默認(rèn)的工作表名稱(Sheet1、2、3),第三個參數(shù)指定導(dǎo)入數(shù)據(jù)文件的編碼方式(UTF-8)。
可以通過head(data)查看數(shù)據(jù)集的前6條記錄。
數(shù)據(jù)重塑(寬轉(zhuǎn)長):
本例就按照導(dǎo)入的成績寬數(shù)據(jù)作為演示案例:
我們想要將以上導(dǎo)入的數(shù)據(jù)轉(zhuǎn)成長數(shù)據(jù),也就是一維表(姓名、科目、分?jǐn)?shù))
加載數(shù)據(jù)重塑包:
library("reshape2")
mydata <- melt(data, id.vars = "姓名",variable.name = "科目", value.name = "成績")
長數(shù)據(jù)立馬就可以呈現(xiàn)出來。
可是以上情況太過理想,通常我們要面對的寬數(shù)據(jù)會很復(fù)雜:
倘若我們面臨的輸入如上所示,想要得到的結(jié)果是,姓名、姓名是兩列單獨(dú)的字段,不同科目合并成單獨(dú)的一個字段。這種結(jié)果就稍顯復(fù)雜。
不過reshape2包仍然可以輕松應(yīng)對這種情況:
mydata2 <- melt(data, id.vars = c("姓名","性別"),variable.name = "科目", value.name = "成績")
只需在指定主字段時(shí),給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ùn)行以上代碼,你的對應(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指定變量間分隔符,默認(rèn)為空格,row.names指定是否輸出行號,col.names指定是否輸出列名,quote指定是否用引號將變量包括。
跑完代碼之后,你對應(yīng)的文件夾目錄下就多對出一個名為newdata的TXT格式數(shù)據(jù)文件,你可以通過導(dǎo)入并查看數(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)出的方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
本文名稱:R語言數(shù)據(jù)重塑和導(dǎo)出的方法
文章鏈接:http://www.rwnh.cn/article10/ihjpdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、響應(yīng)式網(wǎng)站、網(wǎng)頁設(shè)計(jì)公司、ChatGPT、動態(tài)網(wǎng)站、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)