#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, если это ответило на ваш вопрос, пожалуйста, отметьте его ответом, щелкнув галочку слева от этого ответа. Это позволит другим узнать, что ваша проблема успешно решена.