RStudio: преобразование числа в правильную форму

#r

#r

Вопрос:

В настоящее время я нахожусь в таблице в RStudio, подобной приведенной ниже, и столбец «system_version» — это тип символа, однако некоторые из них отображаются как «8.0.0», что мне и нужно, в то время как некоторые из них отображаются как целое число, например «9». Интересно, как мне это исправить?

 ------------------------------
|  platform | system_version | 
------------------------------
|      PC     |     8.0.0    | 
------------------------------
|      PC     |       9      | 
------------------------------
|      PC     |     7.0.0    | 
------------------------------
|      PC     |       6      | 
------------------------------
|      PC     |       1      | 
------------------------------

  
 Desired table:
------------------------------
|  platform | system_version | 
------------------------------
|      PC     |     8.0.0    | 
------------------------------
|      PC     |     9.0.0    | 
------------------------------
|      PC     |     7.0.0    | 
------------------------------
|      PC     |     6.0.0    | 
------------------------------
|      PC     |     1.0.0    | 
------------------------------
  

Ответ №1:

Мы можем использовать sub для замены элементов, которые содержат только цифры от начала ( ^ ) до конца ( $ ) строки, захватив эти элементы и заменив на обратную ссылку ( \1 ) захваченного сгруппированного при вставке .0.0

 df1$system_version <- sub("^(\d )$", "\1.0.0", df1$system_version)
  

данные

 df1 <- structure(list(platform = c("PC", "PC", "PC", "PC", "PC"), system_version = c("8.0.0", 
"9", "7.0.0", "6", "1")), class = "data.frame", row.names = c(NA, 
-5L))