R: удалить единицу из фрейма данных

#r

#r

Вопрос:

Как я могу удалить единицы измерения из определенных столбцов в фрейме данных в R?

У меня есть фрейм данных (три строки, три столбца), который выглядит как:

 1 mm  apple  4 cm
11 mm  car  8 cm
22 mm  3  3 cm
  

Результат должен выглядеть так:

 1  apple  4 
11  car  8 
22  3  3 
  

Ответ №1:

Мы перебираем интересующие столбцы и используем sub для удаления нечисловой подстроки ( \s \D ) в конце ( $ ) строки

 DF[-2] <- lapply(DF[-2], function(x) as.numeric(sub("\s \D $", "", x)))
DF
#  v1    v2 v3
#1  1 apple  4
#2 11   car  8
#3 22     3  3
  

данные

 DF <- data.frame(v1 = c('1 mm', '11 mm', '22 mm'), v2 = c('apple', 
     'car', 3), v3 = c('4 cm', '8 cm', '3 cm'), stringsAsFactors=FALSE)