Что такое функция R в пакете tidyverse, которая позволяет добавлять некоторые символы в начало / конец строки?

#r #stringr

#r #stringr

Вопрос:

(Пожалуйста, обратите внимание, что я новичок в программировании coding / r, поэтому я нахожу это немного сложным.)

Например, у меня есть простой набор данных учащихся и их соответствующие веса.

 Class <- c("Tom", "Ana", "John", "Sara")
Weight <- c(50, 45, 52, 47)
df <- data.frame(Class, Weight)
  

Как я могу добавить единицу измерения «кг» в конец каждого веса в переменной «Вес», не вводя ее вручную?

(Я думаю, это можно сделать с помощью пакета stringr, но я не уверен.)

Большое спасибо, Карима

Комментарии:

1. Вы можете просто использовать paste0 : df %>% mutate(Weight = paste0(Weight, "kg"))

2. paste(Weight, "kg")

Ответ №1:

Вы можете использовать paste0 from base R (хорошо, если вам не нужны зависимости) или stringr::str_c (хорошо подходит, если вы используете много других stringr функций). Хотя некоторые stringr функции имеют преимущества перед их базовыми аналогами, эта пара по существу идентична.

 df %>% mutate(Weight = str_c(Weight, "kg"))
  

Для справки, вы можете видеть, что это эквивалентно paste0 :

 assertthat::are_equal(
  df %>% mutate(Weight = str_c(Weight, "kg")),
  df %>% mutate(Weight = paste0(Weight, "kg"))
) # TRUE
  

Комментарии:

1. @GregorThomas, это справедливый запрос, хотя, по правде говоря, я в основном просто расширил свой комментарий к OP, потому stringr tidyverse что был специально запрошен / solution . Практически я использую paste и str_c взаимозаменяемо — и str_c примечание в документах: «вставить() для эквивалентной базовой функциональности R». Если вы хотите предложить дополнительные соображения, я бы приветствовал редактирование.

2. @Karima, если это ответило на ваш вопрос, пожалуйста, отметьте его ответом, щелкнув галочку слева от этого ответа. Это позволит другим узнать, что ваша проблема успешно решена.