You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R中double类型转字符串避免生成科学计数法的解决方案问询

R中double类型长数字转字符避免科学计数法的解决方案

方法1:使用base R的format()函数(最推荐)

无需额外安装依赖包,转字符时显式禁用科学计数法,同时设置trim=TRUE去除自动生成的前导空格即可:

library(tidyverse)
# 示例数据
index <- c(123000789000, 123456000000, 123000000012)
concact_val <- c("C", "A", "B")

df <- bind_cols(
  as_tibble(index),
  as_tibble(concact_val)
)

# 实现转换拼接
df %>%
  mutate(
    index = format(index, scientific = FALSE, trim = TRUE),
    index = paste0(concact_val, index)
  ) %>%
  select(-concact_val)

运行后即可得到你需要的非科学计数法拼接结果。

方法2:使用bit64包适配超长整数

如果后续需要处理长度超过15位的整数,为了避免double类型精度丢失导致的末位错误,可以先转换为integer64类型再转字符:

library(tidyverse)
library(bit64)

df %>%
  mutate(
    index = as.character(as.integer64(index)),
    index = paste0(concact_val, index)
  ) %>%
  select(-concact_val)

方法3:临时调整全局科学计数法阈值

该方法通过临时修改全局配置避免科学计数法输出,使用后需恢复原有配置避免影响其他代码逻辑,不推荐常规场景使用:

library(tidyverse)
# 备份原有配置,设置科学计数法触发阈值
old_opt <- options(scipen = 999)

df %>%
  mutate(
    index = as.character(index),
    index = paste0(concact_val, index)
  ) %>%
  select(-concact_val)

# 恢复原有配置
options(old_opt)

内容的提问来源于stack exchange,提问作者Mark Rieke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:24:04