Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 数字格式,写入1e-5而不是0.00001_R_Numbers_Format - Fatal编程技术网

R 数字格式,写入1e-5而不是0.00001

R 数字格式,写入1e-5而不是0.00001,r,numbers,format,R,Numbers,Format,我使用了read.table来读取包含数字(如0.00001)的文件 当我用write.table将它们写回时,这些数字显示为1e-5 如何保持旧格式?如果输入是科学符号和显式符号数字的混合,那么您将编写自己的解析器来读取数字,并跟踪哪些数字采用了哪些格式。事实上,您需要保留这些数字的字符串表示形式,以便能够准确地写回输入中的内容 但是,如果您只想使用一致的显式表示法编写.table(),请尝试 write.table(format(_your_table_here_, scientific=F

我使用了
read.table
来读取包含数字(如0.00001)的文件

当我用
write.table
将它们写回时,这些数字显示为1e-5


如何保持旧格式?

如果输入是科学符号和显式符号数字的混合,那么您将编写自己的解析器来读取数字,并跟踪哪些数字采用了哪些格式。事实上,您需要保留这些数字的字符串表示形式,以便能够准确地写回输入中的内容

但是,如果您只想使用一致的显式表示法编写.table(),请尝试

write.table(format(_your_table_here_, scientific=FALSE), ...) write.table(格式(\u您的\u table\u here\u,scientific=FALSE),…)
您可以通过将数字转换为具有所需格式的字符串,然后在调用
write.table
中使用参数
quote=FALSE
来完成此操作

dfr <- data.frame(x = 10^(0:15))
dfr$y <- format(dfr$x, scientific = FALSE)
write.table(dfr, file = "test.txt", quote = FALSE)

dfr在调用
write.table
之前,我只需更改
scipen
选项。请注意,这也将改变在控制台上打印时数字的显示方式

options(scipen=10)
write.table(foo, "foo.txt")
options(scipen=0)  # restore the default

用于对所有行进行最大控制循环,并将它们打印到使用sprintf格式化的文本文件中

#在data.frame测试中查找行数

nrows如果我只需要一行,而我有几行呢?@user425895:那么你需要在你的问题中指定它。现代变体:
withr::with_options(c(scipen=10),write.table(foo,“foo.txt”)
。我可能应该提到,使用
quote=FALSE
将停止引用所有字符和因子列。我正在将csv文件传递到postgres数据库。默认sql不会将1e+5识别为整数…例如Circos()因此,我猜Perl不认为科学数字是整数。
# 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")