R语言基础学习(2)------文件读写操作

R获取数据的三种途径

更好的一篇指导博客:R语言学习笔记(八)–读写文件与网络爬虫

  1. 利用键盘来读取数据。
  2. 通过读取存储在外部文件上的数据。
  3. 通过访问数据库系统来获取数据。

一、键盘读取数据

首先根据自己的需求输入数据,使用data.frame()函数将其构建为数据框。
在这里插入图片描述
如果想要构建一个不包含数据的数据框,并且想要向其中填写自己需要的内容的话,可以使用edit()函数:
在这里插入图片描述
为每一列数据框的数据定义其类型,包括character(),numeric()等等,随后是有edit()函数即可生成以下表格,并且可以手动的输入数据进行存储:
在这里插入图片描述
如果需要再次对其中的数据进行修改时,使用fix()函数,即可再次对其中的内容进行编辑:
在这里插入图片描述
在这里插入图片描述

二、读取文件数据

①打开txt文件
读取文件数据常用的函数为read.table()函数
①使用绝对路径②使用相对路径

使用read.table(‘文件名’)的方式打开txt文件
tips:如果使用文件的相对路径进行访问时,首先需要使用setwd()函数讲当前的工作路径调整到与文件同一目录下。
在这里插入图片描述
R提供了head()tail()两个函数,用于展示文件头部和尾部的部分行的内容,默认为访问6行,可以根据自己的需要设置参数来调整访问的行数。

通常除了txt文件,还有例如csv类型的文件也通常用于存储数据。在csv文件中,不同的列的数据是使用','逗号隔开的,如果直接对其进行访问时则会出现一堆,看着很不舒服。
在这里插入图片描述
因此,当我们想要访问csv文件时,可以使用sep参数,意思是将','识别为分隔符,不输出分隔符
在这里插入图片描述
在这里插入图片描述
此外read.table()函数的参数可以有以下用法:
y <- read.table("input.csv",sep=',',header = TRUE) header为逻辑变量,为TRUE可以隐藏表头名
在这里插入图片描述(tips: 以上的v1v2v3 1 2 3都不在了)

read.table('input.txt',header = TRUE,skip=145) skip参数默认可以跳过前5行不显示,可自行修改参数↓
在这里插入图片描述(tips: 跳过了前145行,直接输出剩下的内容)

read.table('input.txt',skip=5,nrows = 20) nrows表示显示到多少行。
(使用skip参数和nrows参数可以自由的控制想要输出的内容)
在这里插入图片描述(tips:跳过前五行,依次输入20行的内容)

此外的一些重要参数:
①na.strings
可选的用于表示缺失值的字符向量。
na.strings=c("-9","?")把-9和?值在读取数据时候转换成NA
②stringsAsFactors
逻辑值,标记处字符向量是否需要转化为因子Factor,默认是TRUE。
stringsAsFactors = F意味着,“在读入数据时,遇到字符串之后,不将其转换为factors,仍然保留为字符串格式”。

(tips:字符串string是用于记录信息,Factor因子是用于给信息添加分类。)

此外的一些读取其他类型的函数:
在这里插入图片描述

三、读取网络文件

从url中读取数据

> t <- url("https://www.r-project.org/COPYING",encoding = "UTF-8")
> class(t)
[1] "url"        "connection"
> d <- scan(t,what = character())
Read 2969 items
> head(d,n=20)
 [1] "GNU"         "GENERAL"     "PUBLIC"      "LICENSE"    
 [5] "Version"     "2,"          "June"        "1991"       
 [9] "Copyright"   "(C)"         "1989,"       "1991"       
[13] "Free"        "Software"    "Foundation," "Inc."       
[17] "59"          "Temple"      "Place,"      "Suite" 

url()函数中包含的是目标地址和编码方式
scan("data_utf8.txt", what="", fileEncoding="UTF-8")
↑scan()函数中的what参数表示 从数据组寻找属于character()类型的数据
scan()函数比read.table()函数更加灵活,区别之一是前者可以指定变量的类型,另一个特点在于scan()可以用来创建不同的对象、向量、矩阵、数据框和列表等等。

同时,R支持读取剪切板上的数据,例如从csv文件中复制部分内容
在这里插入图片描述

使用read.table(''clipboard")即可获取剪切板上的数据信息:
将其展示:    clipboard即为剪切板
按行读取数据:
**readLines(con, n)**

  • con: 一个connectin类的对象或一个字符串
  • n: 期望读取的行数,负数则读到末尾
    在这里插入图片描述

4.写入文件操作

常用的写入文件操作为与上文对应的write,table()函数

write.table(x, file, append, quote, sep, row.names, col.names, fileEncoding)

append: 是否追加到已有的文件的末尾
quote: 字符型数据是否用双引号括起来
row.names: 行的名字是否输出

若想用更简单的方式将一个对象写入文件,可以使用命令write(),一般格式为:

write(x, file='data', ncolumns=if(character(x)) 1 else 5, append=FALSE, sep=' ')

x:对象的名字
ncolumns:用来定义文件中的列数(默认情况下,如果x为字符型数据,则ncolumns=1;对于其它类型数据默认为5)

对于excel等文件的读写操作 需要依赖java环境才能使用,可以根据文章顶部的blog进行查询,本文只是自学笔记,因此不做赘述。

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值