r - 在 R 中未正确读取小数
问题描述
我正在尝试获取整数 193525.0768,但它会删除它的小数(?)。请给我解释一下。
df <- tibble(
x = "193525.0768"
) %>%
mutate(x = as.numeric(x))
print(df, digits = 10) # decimals removed. I expect it to maintain the decimals numbers
# A tibble: 1 x 1
x
<dbl>
1 193525.
df[1,1][[1]] # decimals removed
# 193525
x <- "193525.0768"
print(as.numeric(x), digits = 10) # decimals not removed
# 193525.0768
解决方案
您有打印问题,而不是阅读问题。tibble 打印方法不接受数字参数 - 详情请参阅?print.tbl
。您可以print.data.frame
显式使用来绕过 tibble 打印方法并改用 data.frame 打印方法,它确实需要一个digits
参数:
tibble(x = "193525.0768") %>%
mutate(x = as.numeric(x)) %>%
print.data.frame(digits = 10)
# x
# 1 193525.0768
或者您可以使用选项更改默认值pillar.sigfig
(在 中提到?print.tbl
)。默认值为 3 - 这令人困惑,因为如果我按字面意思理解,我希望 193525.0768 打印为 194000 ...pillar
包中可能有解释推理的文档。
options(pillar.sigfig = 10)
tibble(x = "193525.0768") %>%
mutate(x = as.numeric(x))
# x
# 1 193525.0768
或者,使用数据框而不是小标题:
data.frame(x = "193525.0768") %>%
mutate(x = as.numeric(x)) %>%
print(digits = 10)
# x
# 1 193525.0768
推荐阅读
- python - 当字符串只是列表项的一部分时,如何在列表中查找所有出现的字符串
- python - 仅当特定列中出现子字符串(或符号)时才将值复制到另一列,否则将另一列保持不变 DataFrame
- bash - 如何在 bash 中计算对 API 的 POST 请求的内容长度?
- python - Docker自定义用户权限被拒绝,同时访问容器的文件系统
- reactjs - 'suppressHydrationWarning'为null的swr错误如何处理swr的空数据
- amazon-web-services - AWS beanstalk 数据库选择
- oracle - 如何更新表 Oracle PLSQL 中的每一行
- python - Python:使用 Tweepy 字典时出现 TypeError
- angular - 如何使用传单打开的街道地图以角度检测标记在圆圈内外
- android - 生成 .so 文件后构建 cpp 代码以在 Anroid 中运行 FFMPEG 命令