r - 删除打印到文件中的多余行
问题描述
我正在尝试打印以归档str_split
操作的输出,如下所示:
s <- t(unlist(str_split("foo_bar_0.5", "_"), use.names = FALSE))
write.csv(s, "test.csv", quote = FALSE, row.names = FALSE, col.names = FALSE)
使用该row.names = FALSE
参数,我能够删除行名。但是,此代码仍将包含列名的额外行写入文件,如下所示:
V1,V2,V3
foo,bar,0.5
带有以下警告:
Warning message:
In write.csv(s, "test.csv", quote = FALSE, :
attempt to set 'col.names' ignored
我只想要第二行。任何想法我做错了什么?
解决方案
使用write.table
代替write.csv
:
write.table(s, "test.csv",sep=',', quote = FALSE, row.names = FALSE, col.names = FALSE)
write.table 有两个参数,如 sep 用于正确放置分隔符,在这种情况下它的逗号,另一个参数是 col.names 这是一个有效参数,将其设置为 False 应该适合你。
同样根据文档,如果查找 ?write.csv,对于 ellipsis(...) ,它会显示以下内容
... write.table 的参数:append、col.names、sep、dec 和 qmethod 不能更改。
文档中还提供了更详细的解释,其中提到了您收到的警告:
write.csv 和 write.csv2 为编写 CSV 文件提供了便利的包装器。如果 row.names = TRUE(默认值),他们将 sep 和 dec(见下文)、qmethod = "double" 和 col.names 设置为 NA,否则设置为 TRUE。
write.csv 使用“.” 小数点和逗号作为分隔符。
write.csv2 使用逗号作为小数点,使用分号作为分隔符,这是某些西欧语言环境中 CSV 文件的 Excel 约定。
这些包装器故意不灵活:它们旨在确保使用正确的约定来编写有效的文件。更改 append、col.names、sep、dec 或 qmethod 的尝试将被忽略,并发出警告。
推荐阅读
- python - 模块化:程序计算百分比折扣
- java - 与 JUNIT5 一起使用时在 JMockit 库中出现异常
- python - 数据库忙时提交
- web - Netlify 漂亮的查询
- python - 为什么我会从网络抓取返回空列表?
- php - 我无法返回一系列日期的最终日期
- javascript - 不明白为什么这段代码有效
- dynamics-crm - 在自定义网站中包含的 iframe 中托管 CRM Dynamics,自定义网站充当父级
- ios - React Native - 从 Expo 迁移到另一种启动应用程序的方式 - 为 andorid 和 ios 设置模拟器
- ruby-on-rails - RailsEventStore 中的持久关系投影