防止在write_delim中使用科学计数法

时间:2018-10-31 21:30:06

标签: r scientific-notation readr

使用readr::write_delim,可以用科学计数法表示数值。如何指定数字值不能用科学计数法表示? scipen选项不能解决此问题。

options(scipen = 999)
df <- data.frame(x = seq(1:101), y = seq(from = 10000000, to = 10001000, by = 10))
df$yinv <- 1/df$y
write_delim(df, "df.txt", delim = "|" )
write.csv(df, file = "df.csv")

注意-由于许多列的值都在-1和1之间,因此我不能使用整数类。但是,事实证明,我不介意将数字四舍五入。因此,我想出了这种解决方案,可以避免产生科学的符号:

df_round <- df %>%
mutate_if(is.numeric, funs(round(.,5))) %>%
mutate_all(as.character)

write_delim(df, "df.txt", delim = "|", na = "")

0 个答案:

没有答案