Блог переехал. Актуальная версия поста находится по адресу: http://aakinshin.net/ru/blog/r/string-concatenation/.
Давайте поговорим о конкатенации строк. Новички в R пытаются пробовать стандартную конструкцию
Но их постигает неудача — R так не работает. Оператор плюс — это
арифметическая операция, её нельзя применять к строкам. В R полагается использовать функцию
paste:
Функция paste соединяет строки, разделяя их некоторым сепаратором sep (который по умолчанию равен пробелу), а paste0 — это её аналог с пустым оператором. Поясним примером:
paste("a", "b", "c") # "a b c"
paste0("a", "b", "c") # "abc"
Такой способ является стандартным, но многим он не по душе. Хочется иметь какой-нибудь бинарный оператор. Но ведь не обязательно это должен быть плюс (например, в PHP для конкатенации строк
используется точка). Но давайте будем придерживаться R-стилистики и создадим свой оператор "%+%", который будет складывать строки. Сделать это очень просто:
Теперь мы можем складывать строки, используя наш новый бинарный оператор:
"a" %+% "b" %+% "c" # "abc"
Кроме того, этот оператор будет прекрасно работать и с векторами в лучших традициях R:
"a" %+% "b" %+% 1:3 # "ab1" "ab2" "ab3"
Идея взята из поста
A handy concatenation operator.
Комментариев нет:
Отправить комментарий