Jak podzielić łańcuch w R w następujący sposób? Spójrz na przykład, proszęR, podzielony ciąg znaków na pary znaków
example:
c("ex", "xa", "am", "mp", "pl", "le")
?
Jak podzielić łańcuch w R w następujący sposób? Spójrz na przykład, proszęR, podzielony ciąg znaków na pary znaków
example:
c("ex", "xa", "am", "mp", "pl", "le")
?
x = "example"
substring(x, first = 1:(nchar(x) - 1), last = 2:nchar(x))
# [1] "ex" "xa" "am" "mp" "pl" "le"
Możesz, oczywiście, owinąć go do funkcji, może pominąć nie-litery (nie wiem, czy dwukropek miał być częścią łańcucha lub nie) itp
aby to zrobić na wektorze łańcuchów, można użyć go jako anonimowego funkcji z lapply
:
lapply(month.name, function(x) substring(x, first = 1:(nchar(x) - 1), last = 2:nchar(x)))
# [[1]]
# [1] "Ja" "an" "nu" "ua" "ar" "ry"
#
# [[2]]
# [1] "Fe" "eb" "br" "ru" "ua" "ar" "ry"
#
# [[3]]
# [1] "Ma" "ar" "rc" "ch"
# ...
lub uczynić go w nazwie funkcji i używać go po imieniu. Ma to sens, jeśli będziesz go często używać.
str_split_pairs = function(x) {
substring(x, first = 1:(nchar(x) - 1), last = 2:nchar(x))
}
lapply(month.name, str_split_pairs)
## same result as above
Ok, mam wektor ciągów znaków (znak). Jak uzyskać z tego wektor takich par? –
Może "lapply"? –
Oto kolejna opcja (choć wolniej niż @ odpowiedź Gregora):
x=c("example", "stackoverflow", "programming")
lapply(x, function(i) {
i = unlist(strsplit(i,""))
paste0(i, lead(i))[-length(i)]
})
[[1]] [1] "ex" "xa" "am" "mp" "pl" "le" [[2]] [1] "st" "ta" "ac" "ck" "ko" "ov" "ve" "er" "rf" "fl" "lo" "ow" [[3]] [1] "pr" "ro" "og" "gr" "ra" "am" "mm" "mi" "in" "ng"
Może również nieco związanych http://stackoverflow.com/questions/2247045/chopping -a-string-into-a-vector-of-fixed-width-character-elements-elements –