r - 一行接一行地写入R中的文件
问题描述
我有以下一段代码可以一次一行地写入 R 文件。
for (i in c(1:10)){
writeLines(as.character(i),file("output.csv"))
}
它只写了 10 个大概覆盖前面的行。如何让 R 将新行附加到现有输出?append = TRUE 不起作用。
解决方案
append = TRUE
使用该函数cat
(而不是)时确实writeLines
有效,但只有在您提供cat
文件名时才有效,而不是在您给它一个file
对象时:文件是否被附加或覆盖是文件对象本身的属性,即它需要在打开文件时指定。
因此,这两项工作:
f = file('filename', open = 'a') # open in “a”ppend mode
for (i in 1 : 10) writeLines(i, f)
for (i in 1 : 10) cat(i, '\n', file = 'filename', sep = '', append = TRUE)
file
在 R 中几乎不需要手动调用。
......但正如另一个答案所示,你可以(而且应该!)无论如何都要避免循环。
推荐阅读
- python - 如何用python绘制3d条形图/直方图+颜色?
- svn - SVN 试图提交不存在的文件/文件夹
- java - 使用一致性配置文件 XML 的 HL7 ADT 消息验证
- maven-3 - 将所有具有依赖关系的输出 jar 复制到一个文件夹中
- json - Flutter 获取 JSON 并返回结果
- react-native - 如何在本机反应中从所有屏幕中删除标题(stackNavigator)
- javascript - React.js 无法使用来自 useState 的 .map 遍历数组
- python - Plotly with python - 折线图取消全选
- excel - 电子表格和直接输入的结果不同,可能是由于 .specialcells(xlCellTypeBlank)?
- python - 如何在数据框上映射和创建与其他 2 列中的值相对应的新列