Как я могу вставить вертикальную черту между каждым символом строки в R? Например, скажем, у меня есть строка «ABC123». Как я могу получить вывод «A|B|C|1|2|3»? Если бы кто-нибудь мог векторизовать эту идею для вектора строк символов, это было бы здорово.
Вставьте вертикальную черту между каждым символом строки в R
Ответы (2)
Вот вариант с использованием regex
gsub("(?<=.)(?=.)", "|", "ABC123", perl = TRUE)
#[1] "A|B|C|1|2|3"
Или с более чем одной строкой
mystrings <- c("ABC123", "PASDP")
gsub("(?<=.)(?=.)", "|", mystrings, perl = TRUE)
#[1] "A|B|C|1|2|3" "P|A|S|D|P"
person
akrun
schedule
21.07.2017
Кто-нибудь рекомендует какие-либо конкретные ресурсы для манипуляций со строками в R? Я бы считал себя довольно сильным программистом на R, но я все еще борюсь с такими базовыми манипуляциями со строками.
- person StatGuy45; 21.07.2017
Сначала разделить на отдельные символы, а затем свернуть
paste(unlist(strsplit("ABC123", "")), collapse = "|")
#[1] "A|B|C|1|2|3"
Для вектора строк используйте sapply
для их перебора
mystrings = c("ABC123", "PASDP")
sapply(strsplit(mystrings, ""), paste, collapse = "|")
#[1] "A|B|C|1|2|3" "P|A|S|D|P"
person
d.b
schedule
20.07.2017
Я придумал
paste0( strsplit("ABC123", "")[[1]], collapse="|")
, но это по сути то же самое.
- person IRTFM; 21.07.2017