R语言【utils】——write.table(),write.csv(),write.csv2():将数据写入文件

Package utils version 4.2.0


Usage

R 复制代码
write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ",
            eol = "\n", na = "NA", dec = ".", row.names = TRUE,
            col.names = TRUE, qmethod = c("escape", "double"),
            fileEncoding = "")

write.csv(...)
write.csv2(...)

Arguments

参数【x】:要写入的对象,最好是矩阵或数据帧。如果不是,则尝试将其强制转换为数据帧。

参数【file】:命名文件的字符串或打开用于写入的连接。""表示向控制台输出。

参数【append】:逻辑值。只有当参数【file】是一个字符串时才相关。如果为TRUE,则输出被追加到文件中。如果为FALSE,则覆盖该名称的任何现有文件。

参数【quote】:逻辑值(TRUE或FALSE)或数字向量。如果为TRUE,任何字符或因子列都将被双引号包围。如果是数字向量,则将其元素作为要引用的列的索引。在这两种情况下,如果书写行和列名,则将它们加引号。如果为FALSE,则不引用任何内容。

参数【sep】:字段分隔字符串。参数【x】的每行中的值由这个字符串分隔。

参数【eol】:在每行(行)末尾打印的字符。例如,eol = "\r\n"将在类unix操作系统上生成Windows的行尾,eol = "\r"将生成Excel:mac 2004所期望的文件。

参数【na】:用于数据中缺失值的字符串。

参数【dec】:用于数字列或复杂列中的小数点的字符串必须是单个字符。

参数【row.names】:要么是指示参数【x】的行名是否与参数【x】一起写入的逻辑值,要么是要写入的行名的字符向量。

参数【col.names】:指示参数【x】的列名是否要与参数【x】一起写入的逻辑值,或者要写入的列名的字符向量。

参数【qmethod】:一个字符串,指定在引用字符串时如何处理嵌入的双引号字符。必须是"escape" (write.table的默认值)之一,在这种情况下,引号字符将以C风格通过反斜杠转义,或者"double" (write.csv和write.csv2的默认值)之一,在这种情况下,它将被加倍。您可以只指定首字母。

参数【fileEncoding】:字符串:if non-empty声明要在文件(而不是连接)上使用的编码,以便字符数据可以在写入时重新编码。

参数【...】:要写的参数。Table: append, col.names, sep, dec和qmethod不能更改。


Details

如果表没有列,只有row.names = TRUE时才会写入行名,反之亦然。

实数和复数都以尽可能高的精度书写。

如果数据帧具有类似矩阵的列,这些列将被转换为结果中的多个列(通过as.matrix),因此字符color .names或数字引号应该引用结果中的列,而不是输入。默认情况下,这种类似矩阵的列不加引号。

数据框架中的任何列都是列表或具有类(例如,日期),将由适当的转换为。字符方法:默认情况下,这样的列不加引号。另一方面,矩阵的任何类信息都被丢弃,非原子(例如,列表)矩阵被强制为字符。

如果指定了引号,只有已转换为字符的列才会被引号。

dec参数仅适用于不需要转换为字符的列,因为它们具有类或属于类似矩阵的列(或矩阵)的一部分,特别是受I()保护的列。使用选项("OutDec")来控制这种转换。

在几乎所有情况下,数字量的转换都由选项"scipen"控制(参见选项),但内部等效为digits = 15。为了更好的控制,使用format来创建一个字符矩阵/数据帧,并调用write。在那上面。

这些函数每输出1000行检查一次用户中断。

如果文件是一个未打开的连接,则尝试打开它,然后在使用后关闭它。

要在Windows上编写unix风格的文件,请使用二进制连接,例如file = file("filename", "wb")。


CSV files

默认情况下,由行名组成的列没有列名。如果col.names = NA和row.names = TRUE,则添加一个空白列名,这是电子表格读取CSV文件时使用的约定。注意,这样的CSV文件可以通过以下命令在R中读取

复制代码
read.csv(file = "<filename>", row.names = 1)

write.csv和write.csv2为编写CSV文件提供了方便的包装器。他们设置sep和dec(见下文),如果row.names = TRUE(默认值),qmethod = "double"和col.names为NA,否则为TRUE。

csv使用"。"作为小数点,逗号作为分隔符。

write.csv2使用逗号作为小数点,分号作为分隔符,这是一些西欧地区的CSV文件的Excel约定。

这些包装器故意不灵活:它们旨在确保使用正确的约定来编写有效的文件。更改append、col.names、sep、dec或qmethod的尝试将被忽略,并给出警告。

CSV文件不记录编码,对于许多其他应用程序来说,如果它们不是ASCII,就会导致问题。Windows Excel 2007/10将正确打开文件(例如,通过文件关联机制),如果它们是ASCII或UTF-16(使用fileEncoding = "UTF-16LE"),或者可能在当前的Windows代码页(例如,"CP1252"),但"文本导入向导"(从"数据"选项卡)允许更多的编码选择。Excel:mac 2004/8只能导入"Macintosh"(似乎是mac Roman的意思)、"Windows"(可能是Latin-1)和"PC-8"文件。OpenOffice 3。X在打开文件时要求输入字符集。


Note

对于具有大量(数百或更多)列的数据帧,write.table可能很慢:这是不可避免的,因为每个列可能属于不同的类,因此必须单独处理。如果它们都属于同一个类,可以考虑使用矩阵。

相关推荐
叫我菜菜就好28 分钟前
【Flutter_Web】Flutter编译Web第三篇(网络请求篇):dio如何改造方法,变成web之后数据如何处理
前端·网络·flutter
NoneCoder34 分钟前
CSS系列(26)-- 动画性能优化详解
前端·css·性能优化
滚雪球~34 分钟前
@vue/cli启动异常:ENOENT: no such file or directory, scandir
前端·javascript·vue.js
GDAL44 分钟前
vue3入门教程:ref函数
前端·vue.js·elementui
GISer_Jing1 小时前
Vue3状态管理——Pinia
前端·javascript·vue.js
好开心331 小时前
axios的使用
开发语言·前端·javascript·前端框架·html
Domain-zhuo1 小时前
Git常用命令
前端·git·gitee·github·gitea·gitcode
菜根Sec2 小时前
XSS跨站脚本攻击漏洞练习
前端·xss
m0_748257182 小时前
Spring Boot FileUpLoad and Interceptor(文件上传和拦截器,Web入门知识)
前端·spring boot·后端
桃园码工2 小时前
15_HTML5 表单属性 --[HTML5 API 学习之旅]
前端·html5·表单属性