Используйте stringr :: str_glue с трубами - PullRequest
0 голосов
/ 27 октября 2019

Я хочу использовать str_glue с трубами. Мой код:

library(tidyverse)

x <- c('john', 'bell', 'mary', 'cott')

x %>% 
  str_to_title(.) %>% 
  str_glue('Hi, {.}. How are you?')

Но появляется следующее сообщение об ошибке:

Ошибка: все безымянные аргументы должны иметь длину 1

Желание вывода:

Hi, John. How are you?
Hi, Bell. How are you?
Hi, Mary. How are you?
Hi, Cott. How are you?

1 Ответ

1 голос
/ 27 октября 2019

Глядя на помощь help(str_glue), я придумал следующее рабочее решение. Вы можете увидеть помощь самостоятельно.

x <- c('john', 'bell', 'mary', 'cott')
x <- data.frame(x)
rownames(x) <- x[,1]

x %>% 
str_glue_data("Hi, {rownames(.)}. How are you?")

#Hi, john. How are you?
#Hi, bell. How are you?
#Hi, mary. How are you?
#Hi, cott. How are you?

Вы также можете использовать просто str_glue без использования канала следующим образом (я думаю, что это не то, что вам нужно, поэтому обходной путь для вышеупомянутого кадра данных)

x <- c('john', 'bell', 'mary', 'cott')

str_glue('Hi, {x}. How are you?')
#Hi, john. How are you?
#Hi, bell. How are you?
#Hi, mary. How are you?
#Hi, cott. How are you?

Надеюсьчто помогает.

...