回答
您可以通过格式转换你的号码为字符串根据您的需要,然后使用参数quote = FALSE
在调用write.table
做到这一点。
dfr <- data.frame(x = 10^(0:15))
dfr$y <- format(dfr$x, scientific = FALSE)
write.table(dfr, file = "test.txt", quote = FALSE)
请注意,您不应该更改文件中数字的格式。几乎每一件科学软件和每个电子表格都可以理解数字的科学记号,并且还具有数字格式选项,因此您可以查看它们的选择方式。
如果输入是科学记数法和显式记数法的混合,那么您将编写自己的解析器来读取数字并记录哪些是哪种格式。事实上,你会想要保留这些数字的字符串表示,因此你可以写回,正好是输入内容。
但是,如果您只是想以一致的显式表示法编写write.table(),请尝试。
write.table(format(_your_table_here_, scientific=FALSE), ...)
我只会在拨打write.table
之前更改scipen
选项。请注意,这也会改变打印到控制台时数字的显示方式。
options(scipen=10)
write.table(foo, "foo.txt")
options(scipen=0) # restore the default
如果我只需要一行,而且我有几个? – skan 2010-10-20 14:31:39
@ user425895:然后你需要在你的问题中指定。 – 2010-10-20 14:39:06
现代变体:'withr :: with_options(c(scipen = 10),write.table(foo,“foo.txt”)'。 – 2016-07-19 13:42:30
对于所有行的最大控制环和它们打印与的sprintf
# Find number of rows in data.frame test
nrows <- dim(test)[1]
# init a new vector
mylines <- vector("character",dim(test)[1])
# loop over all rows in dataframe
for(i in 1:nrows){
# Print out exactly the format you want
mylines[i] <- sprintf("Line %d: %.2f\t%.2f",1,test[i,"x"],test[i,"y")
}
# write lines to file
writeLines(mylines,"out.txt")
- 1. 以XML格式书写2D点
- 2. 书写数字键盘
- 3. 以特定格式(Python)书写和阅读字典
- 4. 在java中将x509证书写入PEM格式的字符串?
- 5. 使用onkeypress书写数字字
- 6. org.apache.poi for xls写数字格式问题
- 7. Grails重写现场数字格式
- 8. 书写数据++
- 9. Tategaki-ios书写风格
- 10. JS书签填写表格
- 11. 重写字符串格式化无需格式函数
- 12. X509证书格式
- 13. SQL书面方式格式
- 14. 数字格式
- 15. 数字格式
- 16. 数字格式
- 17. 数字格式
- 18. 数字格式
- 19. 数字格式
- 20. 数字格式
- 21. TCL书写套接字
- 22. 在WriteableBitmap上书写文字
- 23. 用折线书写文字
- 24. PHP数字格式与整数格式
- 25. 数字格式化,每隔3位填写一个空格
- 26. SSL的合格数字证书
- 27. Statsmodels:书写式的短方式
- 28. HighCharts - 以简写形式显示$的数字格式
- 29. 阅读/书写标题字符串和数字数组
- 30. 从数组写入Google电子表格(数字格式)中的单元格?
格式化的文本文件,我也许应该提到的是使用'报价= FALSE'将停止所有** **字符和因子列被引用。 – 2010-10-20 17:08:48
我将csv文件传递给postgres数据库。默认的sql不会将1e + 5识别为整数... – Rodrigo 2015-09-03 18:05:09
例如Circos(http://circos.ca/)需要非科学格式。因此,我猜想,Perl不会将科学数字视为整数。 – 2016-07-19 10:24:16