R从文件中读取数据,输出文件

article/2025/11/8 1:56:18

看了几天的书,终于到这一步了,说实话,用R来做统计,很少有人手动的去输入那些数字,肯定是从别的地方导入的,我们用来处理就可以了,所以到这里才算是真正的入门,前面都是做基础的练手。

我学习R从《R语言与统计分析》入手,第一个例子,从书上的例子,入手,为大家能够快速入门。

在F盘下有个r文件夹,里面有个foo.txt的文件,

文件的内容如下:

treat   weight

A          3.4

B          NA

C          5.8

操作命令如下:

>foo<-read.table(file="f:/r/foo.txt",header=T)
>foo

输出结果如下:

      at weight
1     A    3.4
2     B     NA
3     A    5.8

当然我们在经过一系列的处理以后,需要将其保存起来,我们接着来看保存的命令。

1:保存为简单的文本

>write.table(name,file="d:/r/foo.txt",row.names=F,quote=F)

这里rownames表示行名为False也就是不写入文件,quote引号的意思,=F也是不写入的意思。


2.保存为csv文件

>write.csv(d,file="c:/data/foo.csv",row.names=F,quote=F)


3.保存为R格式

save(d,file="f:/r/fool.Rdata")


下面是一个非常像详细的解释:

http://www.cnblogs.com/xianghang123/archive/2012/06/06/2538274.html

【R】数据导入读取read.table函数详解,如何读取不规则的数据(fill=T)

函数 read.table 是读取矩形格子状数据最为便利的方式。因为实际可能遇到的情况比较多,所以预设了一些函数。这些函数调用了 read.table 但改变了它的一些默认参数。

注意,read.table 不是一种有效地读大数值矩阵的方法:见下面的 scan 函数。

一些需要考虑到问题是:

  1. 编码问题

    如果文件中包含非-ASCII字符字段,要确保以正确的编码方式读取。这是在UTF-8的本地系统里面读取Latin-1文件的一个主要问题。此时,可以如下处理

              read.table(file("file.dat", encoding="latin1"))

    注意,这在任何可以呈现Latin-1名字的本地系统里面运行。

  2. 首行问题

    我们建议你明确地设定 header 参数。按照惯例,首行只有对应列的字段而没有行标签对应的字段。因此,它会比余下的行少一个字段。(如果需要在 R 里面看到这一行,设置 header = TRUE。)如果要读取的文件里面有行标签的头字段(可能是空的),以下面的方式读取

              read.table("file.dat", header = TRUE, row.names = 1)

    列名字可以通过 col.names 显式地设定;显式设定的名字会替换首行里面的列名字(如果存在的话)。

  3. 分隔符问题

    通常,打开文件看一下就可以确定文件所使用的字段分隔符,但对于空白分割的文件,可以选择默认的sep = "" (它能使用任何空白符作为分隔符,比如空格,制表符,换行符), sep = " " 或者 sep = "\t"。注意,分隔符的选择会影响输入的被引用的字符串。

    如果你有含有空字段的制表符分割的文件,一定要使用 sep = "\t"

  4. 引用 默认情况下,字符串可以被 " 或 ' 括起,并且两种情况下,引号内部的字符都作为字符串的一部分。有效的引用字符(可能没有)的设置由参数 quote 控制。对于sep = "\n",默认值改为 quote = ""

    如果没有设定分隔字符,在被引号括起的字符串里面,引号需要用 C格式的逃逸方式逃逸,即在引号前面直接加反斜杠 \

    如果设定了分隔符,在被引号括起的字符串里面,按照电子表格的习惯,把引号重复两次以达到逃逸的效果。例如

              'One string isn''t two',"one more"

    可以被下面的命令读取

              read.table("testfile", sep = ",")

    这在默认分隔符的文件里面不起作用。

  5. 缺损值 默认情况下,文件是假定用 NA 表示缺损值,但是,这可以通过参数 na.strings 改变。参数 na.strings 是一个可以包括一个或多个缺损值得字符描述方式的向量。

    数值列的空字段也被看作是缺损值。

    在数值列,值 NaNInf 和 -Inf 都可以被接受的。

  6. 尾部空字段省略的行

    从一个电子表格中导出的文件通常会把拖尾的空字段(包括?堑姆指舴? 忽略掉。为了读取这样的文件,必须设置参数 fill = TRUE

  7. 字符字段中的空白

    如果设定了分隔符,字符字段起始和收尾处的空白会作为字段一部分看待的。为了去掉这些空白,可以使用参数 strip.white = TRUE

  8. 空白行

    默认情况下,read.table 忽略空白行。这可以通过设置 blank.lines.skip = FALSE 来改变。但这个参数只有在和 fill = TRUE 共同使用时才有效。这时,可能是用空白行表明规则数据中的缺损样本。

  9. 变量的类型

    除非你采取特别的行动,read.table 将会为数据框的每个变量选择一个合适的类型。如果字段没有缺损以及不能直接转换,它会按 logical, integer, numeric 和 complex 的顺序依次判断字段类型。如果所有这些类型都失败了,变量会转变成因子。

    参数 colClasses 和 as.is 提供了很大的控制权。 as.is 会 抑制字符向量转换成因子(仅仅这个功能)。 colClasses运行为输入中的每个列设置需要的类型。

    注意,colClasses 和 as.is 对 列专用,而不是个变量。因此,它对行标签列也同样适用(如果有的话)。

  10. 注释

    默认情况下,read.table 用 # 作为注释标识字符。如果碰到该字符(除了在被引用的字符串内),该行中随后的内容将会被忽略。只含有空白和注释的行被当作空白行。

    如果确认数据文件中没有注释内容,用 comment.char = "" 会比较安全 (也可能让速度比较快)。

  11. 逃逸

    许多操作系统有在文本文件中用反斜杠作为逃逸标识字符的习惯,但是Windows系统是个例外(在路径名中使用反斜杠)。在 R 里面,用户可以自行设定这种习惯是否用于数据文件。

    read.table 和 scan 都有一个逻辑参数 allowEscapes。从 R 2.2.0 开始,该参数默认为否,而且反斜杠是唯一被解释为逃逸引用符的字符(在前面描述的环境中)。如果该参数设为是,以C形式的逃逸规则解释,也就是控制符如 \a, \b, \f, \n, \r, \t, \v,八进制和十六进制如 \040 和 \0x2A 一样描述。任何其它逃逸字符都看着是自己,包括反斜杠。

常用函数 read.csv 和 read.delim 为 read.table 设定参数以符合英语语系本地系统中电子表格导出的CSV和制表符分割的文件。这两个函数对应的变种 read.csv2 和 read.delim2 是针对在逗号作为小数点的国家使用时设计的。

如果 read.table 的可选项设置不正确,错误信息通常以下面的形式显示

     Error in scan(file = file, what = what, sep = sep, :line 1 did not have 5 elements

或者

     Error in read.table("files.dat", header = TRUE) :more columns than column names

这些信息可能足以找到问题所在,但是辅助函数 count.fields 可以进一步的深入研究问题所在。

读大的数据格子(data grid)时,效率最重要。设定 comment.char = "",以原子向量类型(逻辑型,整型,数值型,复数型,字符型或原味型)设置每列的 colClasses ,给定需要读入的行数 nrows (适当地高估一点比不设置这个参数好)等措施会提高效率。

 

  





http://chatgpt.dhexx.cn/article/prvRbNCx.shtml

相关文章

R语言中文件或数据的读写

文章目录 系统数据的读写xlsx文件的读写举例说明具体代码结果如下 csv文件的读写读取csv文件写入csv文件使用readr包读取csv文件使用data.table包读取csv文件 scan函数scan()函数的使用语法参数含义描述实例&#xff1a; 系统数据的读写 save(a,b,file"test.RData")…

掌握R语言文件读取方法

目标 掌握 R语言文件读取方法 学习笔记 utils包内Date Input用法base包内readLines用法stringi包内stri_read_linesxlsx包内Date Input用法readr包内 Read a delimited file 用法 1.utils包内Date Input用法 以read.table为例。 read.table参数详细说明见http://www.360doc…

R语言入门(15)_读取文件(read)

目录 一、read.table() 读取工作路径下的纯文本文件&#xff08;.txt&#xff09;(.csv) 1、工作路径的设置 2、head函数——只显示数据前几行 3、read.table()的其他一些参数 二、与read.table相类似的函数 三、read.table()读取网络上的文本文件 三、读取非文本文件 …

使用R读取并查看数据

本篇文章介绍如何使用R读取并查看数据&#xff0c;包含一些最基础的函数使用方法和说明。后面还会陆续介绍数据清洗&#xff0c;匹配和提取等相关的操作。 查看函数帮助 对于新手来说&#xff0c;在使用R时最重要的是了解不同函数的使用方法。很多时候我们都是边用边学的状态&…

R语言如何从外部读取数据到R中

R语言可以从键盘&#xff0c;文本&#xff0c;excel&#xff0c;access&#xff0c;数据库&#xff0c;专业处理软件sas 一、使用键盘的输入 mydata<-data.frame(agenumeric(0),gendercharacter(0),weightnumeric(0)) mydata<-edit(mydata) 二、读入带有分隔符文本格式…

R语言入门——数据快速读取与查看(含实例代码和参数讲解)

R语言数据读取 介绍引言结构安排 数据读取函数文本数据readLines函数 键盘键入数据scan函数讲解 表格数据.xlsx文件介绍表格数据函数参数介绍 快速读入参数介绍竞赛数据练习2020美赛C题2019华为杯E题 数据查看函数表 介绍 引言 毕业季来临&#xff0c;很多小伙伴都在积极准备…

R语言读CSV、txt文件方式以及read.table read.csv 和readr(大数据读取包)

首先准备测试数据*(mtcars)分别为CSV. TXT **2018博客之星评选&#xff0c;如果喜欢我的文章&#xff0c;请投我一票&#xff0c;编号&#xff1a;No.009** [支持连接](https://blog.csdn.net/HHTNAN/article/details/85330758) ,万分感谢&#xff01;&#xff01;&#x…

R语言之读取文件夹的数据

读取文件路径&#xff1a;一层目录&#xff08;“示例”&#xff09;、二层目录&#xff08;“数据1”、“数据2”&#xff09;下的表格数据。 “示例”文件下&#xff1a; “数据1”文件下&#xff1a; “数据2”文件下&#xff1a; 读取文件夹 rm(listls()) #清除变量 …

R入门(一)----读取数据、查看数据

感谢大鹏dapengde 创建数据 #在相应位置新建文件夹 dir.create(E:/R/R lab/学R/r4r) #将数据文件存进文件夹 write.csv(as.data.frame(t(matrix(co2,12,dimnames list(month.abb,unique(floor(time(co2))) ) ))),file E:/R/R lab/学R/r4r/co2.csv)读取数据 R数据的导入与…

手把手教你用R语言读取CSV文件

导读&#xff1a;R语言有许多种方法去获取数据&#xff0c;最常用的是读取CSV文件。 作者&#xff1a;Jared P. Lander 来源&#xff1a;大数据DT&#xff08;ID&#xff1a;hzdashuju&#xff09; 读取CSV文件最好的方法是使用read.table函数&#xff0c;许多人喜欢使用read.c…

R语言中 数据读取与写入

R中其他读取: source #读取R代码 dget #读取R文件 load #读取工作空间 一。R语言读取文本文件(.txt) 在R语言中,读取文本文件的函数可以是:read.table()、scan()、read.fwf(),也可以将.txt转换为.csv或.xlsx文件用其他函数读取。 1. read.table() 参数解释: …

R语言——数据格式和数据读取

R语言——数据读取之详解 福尔摩斯曾说过:“数据,数据,没有数据的推理是罪恶!” 不过比起有意思的统计分析,数据的导入与导出显得十分的无趣,但是不得不说统计分析的数据导入与导出是个让人沮丧的任务,而且耗时巨大。 今天分享的是R数据的储存数据格式,及其R中数据的输…

2019-07-15_linux下vi复制粘贴

vi 环境块复制 1、shiftv 进入行选模式 2、上下箭头选中要复制的块 3、“y”复制 4、“p” 粘贴 转载于:https://www.cnblogs.com/wbly2019/p/11187370.html

linux ubuntu vim复制粘贴,关于vim的复制粘贴

今天被vim的复制粘贴弄得很烦,它不像windows那样,每次复制会把以前的内容覆盖。所以有时粘贴出来的东西并不是你想要的。 在不同终端中,用vim打开的两个文件之间的复制粘贴 1. 用同一个终端,直接使用这个命令: vim file1 file2 这样就可以直接用y和p复制粘贴了。 但是这样…

在windows或linux中使用VIM/VI复制粘贴内容命令及设置大全

在windows或linux中使用VIM/VI复制粘贴内容命令及设置大全 行复制&#xff1a; 【yy】复制光标所在行 【p】在光标位置粘贴复制的内容 多行复制&#xff1a; 【v】从当前位置进行可视化模式&#xff08;【Ctrlv】则进行可视化块选择&#xff09; 此时按上下左右箭头移动光标选…

使用pip安装pymysql

本人使用的python版本是3.6&#xff0c;该版本是自带有pip.可以直接通过pip工具进行安装pymysql: 第一步&#xff1a;找到pip.exe路径。 例如我安装的目录如下&#xff0c;自带的pip工具的python版本&#xff0c;在Scripts目录下都能够找到。 第二步&#xff1a;通过cmd进入命令…

pycharm中安装pymysql

进入pycharm终端&#xff0c;输入pip install pymysql进行安装

Python——pymssql安装

下载&#xff1a; https://pypi.python.org/pypi/pymssql/2.0.1#downloads pymssql的安装包&#xff1a; pymssql-2.0.1.win32-py2.7.exe 32位与python对应 pymssql-2.0.0b1.win-amd64-py2.7.exe 64位与python对应 网上没找到&#xff0c;在csdn中下载…

pymysql的安装及使用及使用mysql数据进行可视化(适合入门,过程详细明确,如有错误请一定指出)

文章目录 Python连接MySQL数据库(pymysql)一、准备模块二、连接数据库connect()&cursor()三、对数据库进行操作execute()四、关闭数据库的连接close() 处理MySQL的数据及简单可视化一、简单的使用1.查询2.插入3.更新4.删除 二、获取数据三、可视化 Python连接MySQL数据库(p…

window 安装 pymysql

一、下载安装python-win 点击打开链接 二、下载安装setuptools 点击打开链接 三、下载安装 mysql 点击打开链接 四、安装pymysql 在python中执行python ez_setup.py文件&#xff0c;如果没有配置环境变量&#xff0c;可以在python安装路径中找到python.exe&#xff0c…