是否有用于转换非标准科学记数法的 R 函数?

Posted

技术标签:

【中文标题】是否有用于转换非标准科学记数法的 R 函数?【英文标题】:Is there an R function to convert non-standard scientific notation? 【发布时间】:2020-01-14 20:22:40 【问题描述】:

我目前正在使用一个数据集(由生物统计学研究项目制作),该数据集表示表达式排名的值是“1.00e3”而不是“1.00e+03”,这在排名时似乎会混淆系统。有没有人对如何在数据框中工作以强制将“e”符号转换为标准形式有任何想法?我已经尝试过 scipen 和 formatC。

【问题讨论】:

试试options(scipen = 999) 1.00e3 仍被视为标准。 non-standard 是什么意思? as.numeric("1.00e3") 似乎工作得很好。您能否使用示例输入和您正在运行的代码创建某种reproducible example 以明确问题所在? 【参考方案1】:

您似乎正在尝试对字符向量进行数字排名。这确实会出错。诀窍是转换为数字进行排名。

x = c("1.00e3", "1.00e+04", "1.0e05")
sort(x)
# "1.00e+04" "1.00e3"   "1.0e05"  
sort(as.numeric(x))
# 1e+03 1e+04 1e+05

如果您真的需要字符格式而不是数字格式的值(这似乎不太可能),您可以这样做

format(as.numeric(x), scipen=999)
# [1] "1e+03" "1e+04" "1e+05"

【讨论】:

以上是关于是否有用于转换非标准科学记数法的 R 函数?的主要内容,如果未能解决你的问题,请参考以下文章

用于 ggplot2 的不带科学记数法的 R 标记中的 cut 函数

R语言sprintf函数:sprintf函数格式化小数位数(数值数据前后整体占位个数)将数字输入与非数字输入组合起来控制科学计数法控制小数零的个数多输入数据的格式化

使用 TCL 将列表中的非科学值转换为科学值

如何在 R 中的 read.csv(或其他读取函数)中“关闭”科学记数法?

js 科学计数法

将科学记数法格式的字符串字符转换为标准记数法