R语言文件读取

Python018

R语言文件读取,第1张

参考文章地址(https://zhuanlan.zhihu.com/p/120422644)

逗号分隔文件 (.csv文件)、 制表符分隔文件 (.tsv文件)和 空格分隔文件 (.txt文件)

(一).csv文件的读取

mydata <- read.csv(file=" ", header=T, sep=",", quote="\", dec=".", fill=T, comment.char=" ")

comment.char用于设置需要跳过的内容,比如需要跳过的行前面有“#”,那么设置comment.char=“#”,当然你也可以设置从中间开始读,注意,这个函数是read.csv里面的哦!

file: 以csv结尾的文件名,由文件所在路径及其文件名构成

header:是否把第一行作为表头

sep:分隔方式,csv文件分隔读入参数设置为"."

                               tsv文件分隔读入参数设置为"\t"

                               txt文件分隔为空格,不需要设置sep参数

也可以通过mydata <- read.table("D:/mydata.csv", header=T, sep=",", row.names="id")读取

(二).tsv文件的读取

mydata <- read.table("D:/mydata.tsv", header=T, sep="\t", row.names="id")

除了分隔方式跟上面一样

(三).txt文件的读取

mydata <- read.table("c:/mydata.txt", header=TRUE, row.names="id")

除了分隔方式跟上面一样

(四)以.gz结尾的压缩文件的读取

1.在R中可以使用gzfile()的方式读取压缩文件

2.使用data.table包里的fread()函数

安装并加载data.table包

install.packages("data.table")

library(data.table)

使用fread()函数读取文件,这里参数和之前的一致,唯一的不同就是fread()可以直接读取压缩文件

mydata <- fread(‘c:/mydata.txt.gz’, header=T, row.names=’id’)

(五)读取.xlsx后缀文件,也就是excel文件

1. 安装并加载openxlsx包

install.packages("openxlsx")

library(openxlsx)

2.进行数据的导入

mydata <- read.xlsx( "mydata.xlsx",rowNames=T)

其他参数可以通过? read.xlsx在R中根据需要进行添加的。

首先打开r语言的命令行编辑窗口

先以简单数据为例,在r命令行窗口输入如下代码:

data_test<-data.frame(c1<-c(7,8,9,10,11,12),c2<-c(23,36,87,54,15,98),c3<-c(400,325,567,212,698,555));

attach(data_test);

pdf("c:/four.pdf",family="gb1");

plot(c1,c2);

dev.off();

detach(data_test);

完成上述代码后,会在对应的输入路径(这里是c:/)下生产此pdf格式文件(这里命名为one.pdf)。使用pdf阅读器打开此文件查看。

完成上述代码后,会在对应的输入路径(这里是c:/)下生产此pdf格式文件(这里命名为two.pdf)。使用pdf阅读器打开此文件查看。

1.R数据的保存与加载

可通过save()函数保存为.Rdata文件,通过load()函数将数据加载到R中。

[ruby] view plain copy

> a <- 1:10

> save(a,file='d://data//dumData.Rdata')

> rm(a)   #将对象a从R中删除

> load('d://data//dumData.Rdata')

> print(a)

[1]  1  2  3  4  5  6  7  8  9 10

2.CSV文件的导入与导出

下面创建df1的数据框,通过函数write.csv()保存为一个.csv文件,然后通过read.csv()将df1加载到数据框df2中。

[ruby] view plain copy

> var1 <- 1:5

> var2 <- (1:5)/10

> var3 <- c("R and","Data Mining","Examples","Case","Studies")

> df1 <- data.frame(var1,var2,var3)

> names(df1) <- c("VariableInt","VariableReal","VariableChar")

> write.csv(df1,"d://data//dummmyData.csv",row.names = FALSE)

> df2 <- read.csv("d://data//dummmyData.csv")

> print(df2)

VariableInt VariableReal VariableChar

1           1          0.1        R and

2           2          0.2  Data Mining

3           3          0.3     Examples

4           4          0.4         Case

5           5          0.5      Studies

3.通过ODBC导入与导出数据

RODBC提供了ODBC数据库的连接。

3.1从数据库中读取数据

odbcConnect()建立一个数据库连接,sqlQuery()向数据库发送一个SQL查询,odbcClose()关闭数据库连接。

[ruby] view plain copy

library(RODBC)

connection <- odbcConnect(dsn="servername",uid="userid",pwd="******")

query <- "SELECT * FROM lib.table WHERE ..."

# or read query from file

# query <- readChar("data/myQuery.sql", nchars=99999)

myData <- sqlQuery(connection, query, errors = TRUE)

odbcClose(connection)

sqlSave()和sqlUpdate()用于写入或更新一个ODBC数据库表。

3.2从Excel文件中导入与导出数据

[ruby] view plain copy

library("RODBC")

conn<-odbcConnectExcel("D:/data/Amtrak.xls")

Amtrak<-sqlFetch(conn,"Data")

close(conn)