数据转换,从字符串到数字

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)

请注意,这会将数字转换回字符。