数据转换,从字符串到数字
Data Convertion, from string to number
我有以下数据
测试<-data.frame(价格="1.165.338,00")
price
1.165.338,00
price: Factor w/ 1 level "1.165.338,00": 1
如何将该价格转换为 1165338.00(带两位小数的数字格式)?
我试过这个公式:
as.numeric(gsub(",","",testing$price))*1000
没有结果
对于 2 位数字的最终格式,我将使用:
library(formattable)
formattable(testing$price, digits = 2, format = "f")
问题出在用作千位分隔符的点和用作小数点分隔符的逗号。做你想做的一种解决方案是 1/ 删除点,而不是将逗号更改为点。完成后,可以使用 as.numeric()
将文本转换为数字。为此,您必须指定列名 ($price):
as.numeric(sub(",",".",gsub(".","",as.character(testing$price),fixed=T)))
fixed =T
强制 R 仅替换“.”到 ''(否则,'.' 是匹配任何单个字符的通配符)。
要将数据格式化为 2 位数字,您可以使用
format(x,nsmall=2)
请注意,这会将数字转换回字符。
我有以下数据
测试<-data.frame(价格="1.165.338,00")
price
1.165.338,00
price: Factor w/ 1 level "1.165.338,00": 1
如何将该价格转换为 1165338.00(带两位小数的数字格式)?
我试过这个公式:
as.numeric(gsub(",","",testing$price))*1000
没有结果
对于 2 位数字的最终格式,我将使用:
library(formattable)
formattable(testing$price, digits = 2, format = "f")
问题出在用作千位分隔符的点和用作小数点分隔符的逗号。做你想做的一种解决方案是 1/ 删除点,而不是将逗号更改为点。完成后,可以使用 as.numeric()
将文本转换为数字。为此,您必须指定列名 ($price):
as.numeric(sub(",",".",gsub(".","",as.character(testing$price),fixed=T)))
fixed =T
强制 R 仅替换“.”到 ''(否则,'.' 是匹配任何单个字符的通配符)。
要将数据格式化为 2 位数字,您可以使用
format(x,nsmall=2)
请注意,这会将数字转换回字符。