我有两个变量,str()
在下面列出。我已经尽一切努力将这些列转换为数字,但是它们不会让步。
$ ASKPRICE_B_B : atomic 4,47 4,49 4,47 4,36 ...
..- attr(*, "label")= chr "ASK PRICE_B_B"
..- attr(*, "format.stata")= chr "%9s"
$ BIDPRICE_B_B : atomic 4,4 4,39 4,33 4,29 ...
..- attr(*, "label")= chr "BID PRICE_B_B"
..- attr(*, "format.stata")= chr "%9s"
我尝试过:
df$ASKPRICE_B_B <- as.numeric(as.character(df$ASKPRICE_B_B))
尝试:
df$ASKPRICE_B_B <- as.numeric(gsub(",", ".", gsub("\\.", "", df$ASKPRICE_B_B)))
尝试:
df$ASKPRICE_B_B <- sub(",", ".", df$ASKPRICE_B_B)
主要给出错误:
Error: unexpected numeric constant in "X1809$ASKPRICE_B_B"
我尝试了许多其他事情,但是我无法弄清楚出了什么问题。
我认为这与以逗号而不是点分隔浮点数有关。不知何故我什至无法用逗号代替逗号。
答案 0 :(得分:1)
尝试:
as.numeric((gsub(",", ".", df$ASKPRICE_B_B)))
PS:如@Gregor所建议,您可以在导入数据时设置文件中使用的小数点右边的字符(此处为dec = ","
)。
答案 1 :(得分:0)
。是正则表达式字符。您需要使用\或fixed = TRUE对其进行转义。试试。
df$ASKPRICE_B_B <- as.numeric(gsub(",", ".", as.character(df$ASKPRICE_B_B), fixed = TRUE))