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可能很慢:这是不可避免的,因为每个列可能属于不同的类,因此必须单独处理。如果它们都属于同一个类,可以考虑使用矩阵。

相关推荐
fishmemory7sec1 分钟前
Electron 使⽤ electron-builder 打包应用
前端·javascript·electron
豆豆1 小时前
为什么用PageAdmin CMS建设网站?
服务器·开发语言·前端·php·软件构建
JUNAI_Strive_ving1 小时前
番茄小说逆向爬取
javascript·python
看到请催我学习1 小时前
如何实现两个标签页之间的通信
javascript·css·typescript·node.js·html5
twins35202 小时前
解决Vue应用中遇到路由刷新后出现 404 错误
前端·javascript·vue.js
qiyi.sky2 小时前
JavaWeb——Vue组件库Element(3/6):常见组件:Dialog对话框、Form表单(介绍、使用、实际效果)
前端·javascript·vue.js
煸橙干儿~~2 小时前
分析JS Crash(进程崩溃)
java·前端·javascript
哪 吒2 小时前
华为OD机试 - 几何平均值最大子数(Python/JS/C/C++ 2024 E卷 200分)
javascript·python·华为od
安冬的码畜日常2 小时前
【D3.js in Action 3 精译_027】3.4 让 D3 数据适应屏幕(下)—— D3 分段比例尺的用法
前端·javascript·信息可视化·数据可视化·d3.js·d3比例尺·分段比例尺
l1x1n03 小时前
No.3 笔记 | Web安全基础:Web1.0 - 3.0 发展史
前端·http·html