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

R语言读取含千位分隔符(点号)的CSV文件简便方案咨询

更简便的R读取千位分隔符为点号的CSV方法

我这里有两个超省心的方案,比常规方法更高效,你可以根据场景选:

方案1:用readr包(推荐,适配复杂数据)

readr属于tidyverse工具集,处理这类格式问题天生顺手,不用事后做字符串替换,读取时直接搞定:

如果还没装包,先完成安装:

install.packages("readr")
library(readr)

然后直接读取文件,通过locale参数明确指定分隔符规则:

# 读取你的测试文件
df <- read_csv("number.csv", col_names = FALSE,
               locale = locale(grouping_mark = ".", decimal_mark = ","))

简单解释下参数:

  • grouping_mark = ".":告诉R数字里的点是千位分隔符
  • decimal_mark = ",":设置小数分隔符(如果你的文件里用逗号表示小数就用这个,要是没有小数,这个参数不影响测试结果)

运行后你会看到df$X1的值是123456,完全符合预期。

方案2:基础R原生方法(无需装包,适配简单场景)

如果不想加载额外包,用基础R也能一步解决:先把列读成字符格式,替换掉点号后转成数值即可:

# 先以字符格式读取数据
df <- read.csv("number.csv", header = FALSE, stringsAsFactors = FALSE, colClasses = "character")
# 替换点号并转换为数值
df$V1 <- as.numeric(gsub("\\.", "", df$V1))

这个方法代码简洁,没有依赖,处理你这种单一列的测试数据特别高效。

测试验证

用你的测试代码生成文件后,不管用上面哪种方法,最终得到的数值都是123456,完美解决了默认识别错误的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:19:02