У меня есть фрейм данных, в котором я хочу сделать две вещи со значениями:
- Добавить пробел в качестве разделителя тысяч
- Удалить де-ноль после десятичного числа
Мне удалось сделать обе эти вещи по отдельности, но мне кажется, что я не могу объединить их.
Чтобы удалить конечные нули, я использовал:
cat <- c("A", "B", "C")
value <- c(1234.5, 1, 12.34)
df <- data.frame(cat, value)
df$value2 <- gsub("\\.00$","",df$value)
df
cat value value2
1 A 1234.50 1234.5
2 B 1.00 1
3 C 12.34 12.34
И чтобы добавить разделитель тысяч, я использовал:
df$value2 <- format(df$value, big.mark=" ")
df
cat value value2
1 A 1234.50 1 234.50
2 B 1.00 1.00
3 C 12.34 12.34
Теперь я хочу объединить их, но если я сделаю это, используя следующий код:
df$value2 <- gsub("\\.00$","",format(df$value, big.mark=" "))
df
cat value value2
1 A 1234.50 1 234.50
2 B 1.00 1
3 C 12.34 12.34
Замыкающие нули удаляются только в тех случаях, которые заканчиваются двумя нулями.Я попытался добавить |\\..*0$
, чтобы он также смотрел на нули с числом перед ним, но это удаляет число после десятичной дроби, а это не то, что я хочу.