Я читаю хорошо структурированные текстовые данные в R, и в процессе преобразования из символа в число c числа теряют свои десятичные разряды.
Я пытался использовать round(digits = 2)
, но это не сработало, так как мне сначала пришлось применить as.numeric
. В какой-то момент я настроил options(digits = 2)
до преобразования, но он тоже не сработал.
В конечном счете, я хотел получить data.frame
с его номерами, точно такими же, как те, которые видны как персонажи.
Я искал здесь помощь и нашел ответы вроде это , это и это ; однако, никто не помог мне решить эту проблему.
Как предотвратить округление чисел при преобразовании символов в числа c?
Вот воспроизводимый фрагмент кода, который я написал.
library(purrr)
my_char = c(" 246.00 222.22 197.98 135.10 101.50 86.45
72.17 62.11 64.94 76.62 109.33 177.80")
# Break characters between spaces
my_char = strsplit(my_char, "\\s+")
head(my_char, n = 2)
#> [[1]]
#> [1] "" "246.00" "222.22" "197.98" "135.10" "101.50" "86.45"
#> [8] "72.17" "62.11" "64.94" "76.62" "109.33" "177.80"
# Convert from characters to numeric.
my_char = map_dfc(my_char, as.numeric)
head(my_char, n = 2)
#> # A tibble: 2 x 1
#> V1
#> <dbl>
#> 1 NA
#> 2 246
# Delete first value because it's empty
my_char = my_char[-1,1]
head(my_char, n = 2)
#> # A tibble: 2 x 1
#> V1
#> <dbl>
#> 1 246
#> 2 222.