gpt4 book ai didi

r - 将数字中的点转换为逗号

转载 作者:行者123 更新时间:2023-12-04 09:35:16 24 4
gpt4 key购买 nike

如果我有一个数据框:

a   b  
2.4 4.6
3.6 66.7
5.8 44.6

a 和 b 都是数字。

我想转换“。”到“,”与
df$a <- as.numeric(gsub(".", ",", df$a))

但我总是得到
Warning message:NAs introduced by coercion

并将所有值转换为 NA。为什么?

最佳答案

你最初的想法几乎是正确的,只是正则表达式是错误的,因为 .匹配任何符号。您需要类似的东西(这会将数字向量转换为字符向量)

df$a <- gsub("\\.", ",", df$a)

您还可以更改 R 打印、绘图和 as.character 函数的操作的输出。您可以使用以下命令将其更改为默认值:
options(OutDec= ",")
另一种选择是使用 format功能。
format(df, decimal.mark=",")

我假设您关心数字的打印方式(输出),因为内部数字存储为 double 浮点数( 更新 感谢@digemall 的评论)。此外,除非某些功能如 read.table特别指定小数点分隔符为 , ,这是不可能的,因为默认情况下 ,用于分隔函数参数。

NA正是出于这个原因引入的(除了不正确的正则表达式)。
df$a <- as.numeric(gsub("\\.", ",", df$a))

默认解析器不知道 ,用作小数分隔符。

关于r - 将数字中的点转换为逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27158064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com