Я пытаюсь найти местоположение десятичной точки, если она существует и даже если все после десятичной дроби - ноль.
Этот тип вопросов возникал много раз, но я не видел ничего, что объясняет фактическое форматирование.
Сценарий: электронная таблица Excel была прочитана в R. Все числа, которые имеют более чемнеобходимо указать определенное количество десятичных знаков.Мой вектор содержит около 1000 записей.
string = as.character(c(123, 0.123, 123.00000, 123.0, 123., 123.4567, 123.456789))
pattern = '\\.'
library(stringi)`
Это НЕ то, что я хочу
str_locate(string = string, pattern = pattern)[1:length(string), 1]
#[1] NA 2 NA NA NA 4 4
Я хочу
#[1] NA 2 4 4 4 4 4
Если я изменю строку на
string = c('123', '0.123', '123.00000', '123.0', '123.', '123.4567', '123.456789')
Тогда я получу правильный ответ с
str_locate(string = string, pattern = pattern)[1:length(string), 1]
#[1] NA 2 4 4 4 4 4