r - 如何让 R 读取 CSV 的实际值而不是指数格式
问题描述
我正在尝试读取其中一列的数字与名称持有者混合的银行文件,例如该列可能具有:
2.10731E+15
JOE BX SHOP
2.10802E+15
etc.
2.10731E+15 类型文件的实际值为:2107310000000000,但是由于存在一些字符串,R 将列作为字符读取,因此仅将值显示为 2.10731E+15。
有没有办法让 R 在使用 read.csv 或 read_csv 读取时忽略 csv 文件的格式?
解决方案
如果我们不介意将数字存储为字符,那么我们可以检查它是否为数字,然后转换为数字和格式,无需科学记数法:
# example data
x <- read.csv(text = "
myCol
2.10731E+15
JOE BX SHOP
2.10802E+15")
# get index of rows with numbers
ix <- !is.na(as.numeric(x$myCol))
#Warning message:
# NAs introduced by coercion
# format matching rows
x[ ix, "myCol"] <- format(as.numeric(x[ ix, "myCol"]), scientific = FALSE)
x
# myCol
# 1 2107310000000000
# 2 JOE BX SHOP
# 3 2108020000000000
推荐阅读
- javascript - 从 Javascript 函数向 PHP 页面传递值
- webhooks - Authorize.Net 定期计费事件
- java - 本机查询中的休眠 n+1 (Spring Data)
- ruby-on-rails-3 - 如何在不编写规范文件的情况下生成招摇
- php - 使用 LINUX raspbian 创建 FPDF 时出现内部服务器错误
- python - 根据具有重复项的现有列创建新的 pandas 数据框
- javascript - 无法读取字符之间的空格
- azure - “错误应用转换。验证指定的转换路径是否有效”的根本原因是什么?
- angular - Angular 7 Persian Calender Bootstrap UI 在 FormControl 中变形
- wordpress - 如何使用 Wordpress TML 插件不同的注册表单?