Символьный столбец с плавающей точкой не преобразуется в числовой - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть две переменные, из которых 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"

Я пробовал много других вещей, но не могу понять, что происходит не так ..

Я думаю, что это как-то связано с разделением поплавка запятой вместо точки.Как-то мне даже не удалось заменить запятую на точку.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

.является регулярным выражениемВы должны избегать их, используя \ или fixed = TRUE.Попробуй.

df$ASKPRICE_B_B <- as.numeric(gsub(",", ".", as.character(df$ASKPRICE_B_B), fixed = TRUE))
0 голосов
/ 18 сентября 2018

Попробуйте: as.numeric((gsub(",", ".", df$ASKPRICE_B_B)))

PS: В соответствии с предложением @Gregor, вы можете установить правильный символ, используемый в файле для десятичных точек (здесь, dec = ",") при импортеваши данные.

...