Интересно, как объединить строку специального символа в paste0, например \пункт.
paste0("\item", "b")
paste0("a", "b")
#> [1] "ab"
paste0("a", "\b")
#> [1] "a\b"
paste0("\item", "\b")
#> Error: '\i' is an unrecognized escape in character string starting ""\i"
Отредактировано
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
head(airquality) %>%
mutate(Ozone1 = cat(paste0("\\item{", Ozone)))
#> \item{41 \item{36 \item{12 \item{18 \item{NA \item{28
#> Ozone Solar.R Wind Temp Month Day
#> 1 41 190 7.4 67 5 1
#> 2 36 118 8.0 72 5 2
#> 3 12 149 12.6 74 5 3
#> 4 18 313 11.5 62 5 4
#> 5 NA NA 14.3 56 5 5
#> 6 28 NA 14.9 66 5 6
Спасибо @Sotos за очень полезный ответ. Был бы признателен, если бы вы рассказали, как использовать это в функции mutate из пакета dplyr.
nchar(paste0("\\item", "b")) дает 6, то есть есть только 1 обратная косая черта.





Как говорит ошибка, вам нужно избежать обратной косой черты. Чтобы напечатать его с одной обратной косой чертой, вам нужно использовать cat. В противном случае это интерпретируется как побег. По этой причине вы не сможете добавить его как есть во фрейме данных. Например,
library(dplyr)
iris %>% mutate(new = paste0("\\item", "b")) #both backslashes are printed
Мы не можем использовать cat внутри mutate. Обратная косая черта экранирована. Чтобы определить одинарную обратную косую черту, вам нужно использовать в строке двойную обратную косую черту.
Узнать больше здесь
Спасибо @Sotos за ваш ответ. Мне нужна только одна обратная косая черта. Любые мысли, пожалуйста.
Я добавил объяснение.
Этот?
cat(paste0("\\item", "b"))Вам нужно избежать косой черты. Если вы опуститеcat, обе косые черты останутся.