目录
一、从键盘输入数据
二、函数方法读取
1.读取数据文件
2.从屏幕读取数据
1.scan
2.readline
3. 读取固定宽度数据文件
三、读取csv文件
四、读取表格数据文件
五、从网络中读取表格或者CSV数据文件
一、从键盘输入数据
mydata <- data.frame(age=numeric(0), gender=character(0),
weight=numeric(0))
mydata <- edit(mydata)
输入了我们的上述代码之后,我们就进入了一个编辑文本模式,我们可以使用vim的编辑文本的语法命令来编辑我们的数据
![](https://img-blog.csdnimg.cn/d4fb5afb91534e4f878a9ca1fc24d336.png)
二、函数方法读取
1.读取数据文件
x<-scan(text = "1 2 3")
x
![](https://img-blog.csdnimg.cn/6d899bacfcff4196baa053b7337538eb.png)
#输入需要读取的文件路径,并且将读取到的数据作为一个向量存储
w <- scan("/Users/Documents/R/city.txt")
w
![](https://img-blog.csdnimg.cn/286f6c58070e48b892f665f289f6c389.png)
w<-scan("/Users/Documents/R/data/weight.data")
w
![](https://img-blog.csdnimg.cn/4f749dacee804396a2d0f0c8e6c5b65e.png)
2.从屏幕读取数据
1.scan
从屏幕读取数值型数据,当我们输入完了我们的数据之后,我们连续两下回车,就能够结束输入,生成一个数值型的向量。
x<-scan()
x
![](https://img-blog.csdnimg.cn/97be03839aa9423ea902a212a5ae5c21.png)
从屏幕读取字符串型数据
y <- scan(what="")
![](https://img-blog.csdnimg.cn/4ea80888a0f84f46ae1d6949ec48bdd8.png)
或者采用下面的方式
2.readline
readline能够支持读取从键盘输入的一行数据,按回车之后就将这一整行数据传入变量中
x=readline()
![](https://img-blog.csdnimg.cn/f141e2640670470cbebdac80f91b2179.png)
3. 读取固定宽度数据文件
第一个参数为我们文件的完整的路径名,宽度为一个向量,w1表示第一个变量的宽度,w2表示第二个变量的宽度,以此类推。
mydata <- read.fwf("filename",widths=c(W1,W2,...,Wn))
mydata1 <- read.fwf("/Users/Documents/R/city.txt",widths=c(4))
mydata1
![](https://img-blog.csdnimg.cn/e00455bd5f4a45a1b0ce23c00fd28c76.png)
mydata<-read.fwf("/Users/Documents/R/data/FixWideData.txt",widths=c(10,10,4,-1,4))
![](https://img-blog.csdnimg.cn/2c3b8694288846a7be89173f7d1f344c.png)
我们同样可以使用指定col.names的方法指定我们索引的名称,其中-1参数是指忽略两个年份之间的空格。(正如我们R语言入门博客中写的,-1表示忽略一列数据)
mydata2<-read.fwf("/Users/Documents/R/data/FixWideData.txt",widths=c(10,10,4,-1,4),col.names=c("Last","First","Born","Died"))
![](https://img-blog.csdnimg.cn/019dfd10dfa94d988229bd97e0e12e44.png)
下面的图像时我们的数据文件,我们发现我们的数据虽然长长短短,但是通过空格进行对齐了,所以我们可以指定文件的宽度来读取到我们的具体的数据
![](https://img-blog.csdnimg.cn/d95ca9a186c34eec9512aacf3874736d.png)
但是我们发现这样的数据文件会出现如下的报错 ,这是因为我们在数据文件的最后一行结束的时候没有回车,我们的编译器找不到我们的结尾的标志,只要在文件的结尾加上一个回车,就不会报错了
![](https://img-blog.csdnimg.cn/2cf1724a42704c83ab9217b14e6c9dc9.png)
三、读取csv文件
#这里将我们的文件路径传入
mydata0<-read.csv("/Users/Documents/R/city.csv")
mydata0
![](https://img-blog.csdnimg.cn/6eeaf95e3af346c993677c8c208b1d32.png)
#当我们指定我们的header为F后,我们原本数据集中的列名就归入了数据中,然后会自动生成一组新的索引,如下图所示
mydata1<-read.csv("/Users/Documents/R/city.csv",header = F)
mydata1
![](https://img-blog.csdnimg.cn/506b01c8822b4874b1f25a3a247415b6.png)
as.is就是设置是否将字符型转化为因子型变量
mydata2 <- read.csv("/Users/Documents/R/data/TableData.txt", as.is=F)
mydata2
mydata2 <- read.csv("/Users/Documents/R/data/TableData.txt", as.is=T)
mydata2
四、读取表格数据文件
每一行数据是一个观测
在每个观测中,不同的变量由一个分隔符隔开,比如空格,tab,冒号,逗号
每个观测包含的变量数相同。
read.table( ).
mydata <- read.table(file, header= logical_value,sep="delimiter", rowname="name"
mydata0 <- read.table("/Users/Documents/R/data/TableData.txt")
![](https://img-blog.csdnimg.cn/c8b31ec0650945db99409e2a688bff14.png)
![](https://img-blog.csdnimg.cn/f84449103c2a4a5a9e3bf7440258859f.png)
当然我们也可以指定我们的分隔符
mydata1 <- read.table("/Users/Documents/R/data/CommaData.txt", sep=",")
mydata1
![](https://img-blog.csdnimg.cn/b9236ee9fcbe4bfb81609a1cccf12320.png)
![](https://img-blog.csdnimg.cn/fa68038ad8be48c7a76d0a91f233c6b7.png)
添加了stringAsFactor=False之后,数据框不会把字符型转换为因子
mydata2 <- read.table("/Users/Documents/R/data/TableData.txt",stringsAsFactor=FALSE)
mydata2
![](https://img-blog.csdnimg.cn/7d956635a3fe4c9eabba0d656356073b.png)
当我们添加参数header=T以后,我们原来的数据集中的第一行的数据就会变成我们的索引
mydata3 <- read.table("/Users/Documents/R/data/TableData.txt",header=T,stringsAsFactor=F)
mydata3
![](https://img-blog.csdnimg.cn/460981a0cf004b29b097b963eb0f713d.png)
五、从网络中读取表格或者CSV数据文件
read.csv()
read.table()
scan()
都可以获取远程服务器的数据
mydata0 <- read.csv("http://www.example.com/download/data.csv")
mydata1 <- read.table("ftp://ftp.example.com/download/data.csv")