write.table
位于 utils
包(package)。 说明
write.table
将其所需的参数 x
(如果它不是一个也不是矩阵,则将其转换为数据帧后)打印到文件或 connection 。
用法
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(...)
参数
x |
要写入的对象,最好是矩阵或 DataFrame 。如果不是,则尝试将 |
file |
命名文件的字符串或打开用于写入的connection。 |
append |
合乎逻辑的。仅当 |
quote |
逻辑值( |
sep |
字段分隔符字符串。 |
eol |
在每行(行)末尾打印的字符。例如, |
na |
用于数据中缺失值的字符串。 |
dec |
用于数字或复杂列中小数点的字符串:必须是单个字符。 |
row.names |
指示 |
col.names |
指示 |
qmethod |
一个字符串,指定在引用字符串时如何处理嵌入的双引号字符。必须是 |
fileEncoding |
字符串:如果非空则声明要在文件(而不是连接)上使用的编码,因此可以在写入字符数据时对其进行重新编码。请参阅 |
... |
|
细节
如果表没有列,则仅在 row.names = TRUE
时才会写入行名,反之亦然。
实数和复数以尽可能高的精度写入。
如果 DataFrame 具有类似矩阵的列,这些列将转换为结果中的多列(通过 as.matrix
),因此字符 col.names
或数字 quote
应引用结果中的列,而不是输入。默认情况下,此类类似矩阵的列不带引号。
DataFrame 中任何列表或具有类(例如日期)的列都将通过适当的 as.character
方法进行转换:默认情况下,此类列不带引号。另一方面,矩阵的任何类信息都将被丢弃,非原子(例如列表)矩阵将被强制为字符。
如果 quote
指定,则只有已转换为字符的列才会被引用。
dec
参数仅适用于不受转换为字符的列,因为它们具有类或者是类似矩阵的列(或矩阵)的一部分,特别是受 I()
保护的列。使用options("OutDec")
来控制此类转换。
在几乎所有情况下,数值量的转换均由选项 "scipen"
控制(请参阅 options
),但具有 digits = 15
的内部等效项。为了进行更精细的控制,请使用format
创建字符矩阵/ DataFrame ,并对其调用write.table
。
这些函数每 1000 行输出检查一次用户中断。
如果file
是非打开连接,则尝试打开它,然后在使用后关闭它。
要在 Windows 上写入 Unix-style 文件,请使用二进制连接,例如file = file("filename", "wb")
。
CSV 文件
默认情况下,行名称列没有列名称。如果col.names = NA
和row.names = TRUE
添加空白列名称,这是电子表格读取 CSV 文件的约定。请注意,此类 CSV 文件可以读入R经过
read.csv(file = "<filename>", row.names = 1)
write.csv
和 write.csv2
为编写 CSV 文件提供了方便的包装器。他们将sep
和dec
(见下文)、qmethod = "double"
和col.names
设置为NA
(如果row.names = TRUE
(默认)),否则设置为TRUE
。
write.csv
使用"."
作为小数点,使用逗号作为分隔符。
write.csv2
使用逗号作为小数点,使用分号作为分隔符,这是某些西欧语言环境中 CSV 文件的 Excel 约定。
这些包装器故意不灵活:它们旨在确保使用正确的约定来写入有效的文件。更改 append
、 col.names
、 sep
、 dec
或 qmethod
的尝试将被忽略,并显示警告。
CSV 文件不记录编码,如果对于许多其他应用程序来说它们不是 ASCII,这会导致问题。如果文件是 ASCII 或 UTF-16(使用 fileEncoding = "UTF-16LE"
)或者可能是当前 Windows 代码页(例如 "CP1252"
),Windows Excel 2007/10 将正确打开文件(例如,通过文件关联机制),但是 ' “文本导入向导”(来自“数据”选项卡)允许更多的编码选择。 Excel:mac 2004/8 只能导入“Macintosh”(这似乎意味着 Mac Roman)、“Windows”(可能是 Latin-1)和“PC-8”文件。 OpenOffice 3.x 在打开文件时询问字符集。
CSV 文件有一个 IETF RFC4180 ( https://www.rfc-editor.org/rfc/rfc4180 ),它强制要求使用逗号作为分隔符和 CRLF 行结尾。 write.csv
在 Windows 上写入兼容文件:在其他平台上使用 eol = "\r\n"
。
注意
对于具有大量(数百或更多)列的数据帧,write.table
可能会很慢:这是不可避免的,因为每列可能属于不同的类,因此必须单独处理。如果它们都属于同一类,请考虑使用矩阵。
例子
x <- data.frame(a = I("a \" quote"), b = pi)
tf <- tempfile(fileext = ".csv")
## To write a CSV file for input to Excel one might use
write.table(x, file = tf, sep = ",", col.names = NA,
qmethod = "double")
file.show(tf)
## and to read this file back into R one needs
read.table(tf, header = TRUE, sep = ",", row.names = 1)
## NB: you do need to specify a separator if qmethod = "double".
### Alternatively
write.csv(x, file = tf)
read.csv(tf, row.names = 1)
## or without row names
write.csv(x, file = tf, row.names = FALSE)
read.csv(tf)
## Not run:
## To write a file in Mac Roman for simple use in Mac Excel 2004/8
write.csv(x, file = "foo.csv", fileEncoding = "macroman")
## or for Windows Excel 2007/10
write.csv(x, file = "foo.csv", fileEncoding = "UTF-16LE")
## End(Not run)
也可以看看
“R 数据导入/导出”手册。
write.matrix
位于包 MASS
中。
相关用法
- R winextras 获取Windows版本
- R winMenus MS Windows 下的用户菜单 (Rgui)
- R winProgressBar MS Windows 下的进度条
- R winDialog Windows下的对话框
- R warnErrList 从列表中收集并总结错误
- R select.list 从列表中选择项目
- R COMPILE 编译用于 R 的文件
- R readRegistry 读取 Windows 注册表配置单元
- R browseVignettes 在 HTML 浏览器中列出晕影
- R hasName 检查姓名
- R nsl 按主机名查找 IP 地址
- R edit 调用文本编辑器
- R create.post 准备电子邮件和帖子的辅助函数
- R hsearch-utils 帮助搜索实用程序
- R download.packages 从类似 CRAN 的存储库下载软件包
- R DLL.version MS Windows 上的 DLL 版本信息
- R ls.str 列表对象及其结构
- R Rscript R 前端脚本
- R bug.report 发送错误报告
- R PkgUtils 用于构建和检查附加包的实用程序
- R cite 引用参考书目条目
- R SweaveSyntConv 转换 Sweave 语法
- R RSiteSearch 搜索文档中的关键词或短语
- R glob2rx 将通配符或通配符模式更改为正则表达式
- R getFromNamespace 用于开发命名空间的实用函数
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Data Output。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。