欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

R語言數(shù)據(jù)讀取以及數(shù)據(jù)保存方式

 更新時(shí)間:2021年04月06日 08:56:51   作者:crystal__behappy  
這篇文章主要介紹了R語言數(shù)據(jù)讀取以及數(shù)據(jù)保存方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

一、R語言讀取文本文件:

1、文件目錄操作:

getwd() : 返回當(dāng)前工作目錄

setwd("d:/data") 更改工作目錄

2、常用的讀取指令read

read.table() : 讀取文本文件

read.csv(): 讀取csv文件

如果出現(xiàn)缺失值,read.table()會(huì)報(bào)錯(cuò),read.csv()讀取時(shí)會(huì)自動(dòng)在缺失的位置填補(bǔ)NA

3、靈活的讀取指令

scan() :

4、讀取固定寬度格式的文件:

read.fwf()

文本文檔中最后一行的回車符很重要,這是一個(gè)類似于停止符的標(biāo)識(shí),否則讀入時(shí)會(huì)顯示“最后一行不完整”的警告,但是不影響數(shù)據(jù)讀入的效果。

5、讀取Excel數(shù)據(jù):

(1)第一種方法

首先打開Excel,選中需要的數(shù)據(jù)后復(fù)制,

然后再R中輸入以下的指令:data.excel =read.delim("clipboard") #clipboard即剪貼板

(2)第二種方法:

使用RODBC包,獲取Excel連接的函數(shù)是odbcConnectExcel()和odbcConnectExcel2007() 分別讀取Excel2003版和2007版的數(shù)據(jù)channel =odbcConnectExcel2007("d:/a.xlsx")

sqlTables(channel)# 列出Excel中的表格

獲取Sheet1中的數(shù)據(jù),可以使用如下任意的一種方式,

data.excel2 =sqlFetch(channel,"Sheet1")
data.excel2 =sqlQuery(channel,"select * from [Sheet1$]")
close(channel) #關(guān)閉ODBC連接,釋放空間

6、讀取網(wǎng)頁數(shù)據(jù)

readHTMLTable()函數(shù)

7、讀取R格式的文件:

R的數(shù)據(jù)或者更一般的對(duì)象可以通過save()保存為R專有的文件格式,以Rdata為后綴,要讀取此類文件,需要用到函數(shù)load()來加載,

8、readLines("d:/data/cat.txt"):

可以直接從連接中以行的形式來讀取文本

要顯示列表中的變量 需要使用符號(hào)$

二、數(shù)據(jù)保存:

1、使用函數(shù)cat()

cat(...,file="",sep="",fill = FALSE ,labels=NULL,append=FALSE) #file表示要輸出的文件名,當(dāng)參數(shù)append=TRUE時(shí),在指定文件的末尾添加內(nèi)容。sep:表示以空格作為分隔符

2、保存為文本文件:

write僅可以寫出一個(gè)矩陣或向量的特定列,和對(duì)一個(gè)矩陣進(jìn)行轉(zhuǎn)置

write.table() 可以把一個(gè)數(shù)據(jù)框或列表等對(duì)象以包含行列標(biāo)簽的方式寫出。

write.csv(): 將數(shù)據(jù)框保存為逗號(hào)分隔文件,但是不包含列名

3、保存R格式文件:

save(data,file="d:/data/salary1.Rdata")

dim():求維度

mode() 用來顯示對(duì)象的類型

names():顯示對(duì)象中的標(biāo)簽

補(bǔ)充:R語言讀取數(shù)據(jù)、拆分?jǐn)?shù)據(jù),并保存到相應(yīng)文件夾

將一張Excel表的數(shù)據(jù)按照第一列元素分組,分組后按照某種規(guī)則命名,并重新讀入Excel中,放入指定的文件夾中。

如上所示的excel表,將sheet1中的數(shù)據(jù)按照“地域名稱”拆分,并將數(shù)據(jù)放入相應(yīng)的省份文件夾,如放入D盤的test文件夾中

D:\mydata\test

|__test
|___mydata.xlsx
|___安徽省
|___安徽省安慶市.xlsx
|___安徽省蚌埠市.xlsx
|___河北省
|__河北省蚌埠市.xlsx
|___……

假如數(shù)據(jù)最終的文件夾目錄如上所示。代碼可以作如下編寫:

library(readxl) # 載入readxl包,使用read_excel讀入excel文件
library(xlsx) # 載入xlsx包,使用write.xlsx保存文件為excel格式
# setwd()設(shè)置路徑為D:\\mydata\\test' 
setwd('D:\\mydata\\test') 
# read_excel 讀入數(shù)據(jù),具體用法可使用幫助。
# 1表示讀入第一張sheet,2表示讀入第二張sheet,也可用sheet = "sheetname",默認(rèn)第一行為標(biāo)題行
dt = read_excel('mydata.xlsx', 2) 
# unique() 過濾重復(fù)數(shù)據(jù),保留唯一數(shù)據(jù)
# 此處過濾掉第2列和第3列的重復(fù)行,最終只剩下3行不重復(fù)數(shù)據(jù),默認(rèn)不含標(biāo)題
province_city <- unique(dt[,2:3])
setwd('D:\\mydata\\test') # 設(shè)置當(dāng)前路徑為省份文件夾放置的目錄
cdir <- setwd('D:\\mydata\\test')
# 循環(huán)次數(shù) n=province_city 的行數(shù)
for (i in c(1:nrow(province_city [,1]))){ 
 # subset()讀取子集,subset(data, data[, 1] == "a") 讀取data中第一列所有為a的行
 dt1 <- subset(dt, dt[,2]==as.character(province_city[i,1])) 
 # paste,設(shè)置filename, 即安徽省,河北省
 cfilename = paste(province_city[i,1],".xlsx",sep = "")
 # 用于下面的if語句判斷 創(chuàng)建的“安徽省”目錄是否存在
 f_dir = paste('D:\\mydata\\test\\',province_city[i,2],sep="")
 # 創(chuàng)建的“安徽省”目錄不存在,則創(chuàng)建;存在則不動(dòng)作. F 表示False
 if (file.exists(f_dir) == F){ 
 dir.create(province_city[i,2]) 
 }else { } 
 # 設(shè)置文件名稱,即安徽省安慶市.xlsx
 c_dir = paste('D:\\mydata\\test\\',province_city[i,2],sep = "")
 # 設(shè)置c_dir為當(dāng)前路徑
 setwd(c_dir) 
 # write.xlsx 將所需的文件列保存到上述設(shè)置的文件中,col.names=TRUE包含標(biāo)題
 write.xlsx(dt1[,2:5],cfilename,col.names=TRUE,showNA=FALSE)
 # 設(shè)置路徑為cdir,進(jìn)入到下一次循環(huán)
 setwd(cdir) 
} 

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

最新評(píng)論