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

相关推荐
风骏时光牛马1 分钟前
稳定性治理及疑难问题深度剖析与实战复盘
前端
JeffongTan8 小时前
在LWC中镶嵌VF Page获取用户IP
前端·javascript·salesforce
不cong明的亚子10 小时前
web live多屏互动平台
javascript·经验分享·音视频
陆枫Larry11 小时前
Astro 是什么
前端
是立不是利12 小时前
写给设计师的 CSS 博客美学指南
前端·css
统计学小王子12 小时前
数学建模国赛倒计时4天——《统计模型精讲(混合效应模型R语言实现)》
开发语言·数学建模·r语言
dsyyyyy110113 小时前
JS复习,难点,易错点总结
开发语言·javascript·ecmascript
默_笙13 小时前
🏝 Docker 就是"房地产开发":从施工图纸到小区物业的容器化指南
前端·javascript
计算机魔术师13 小时前
Rohan Paul 谈用时间跨度衡量智能体能力,并引用 OpenAI 自动化研究实习生里程碑
前端
kyriewen13 小时前
我手写了个极简版 React Router——才搞懂 v6 为什么砍了这么多 API
前端·javascript·程序员