後でビンプロット分布を作成するには、文字列の最初の2文字を抽出する必要があります。ベクター:
x <- c("75 to 79", "80 to 84", "85 to 89")
私はこれまでに得ました:
substrRight <- function(x, n){
substr(x, nchar(x)-n, nchar(x))
}
関数を呼び出す
substrRight(x, 1)
応答
[1] "79" "84" "89"
最初ではなく最後の2文字を印刷する必要があります。
[1] "75" "80" "85"
substr
関数を直接使用して、各文字列の最初の2文字を取得できます。
x <- c("75 to 79", "80 to 84", "85 to 89")
substr(x, start = 1, stop = 2)
# [1] "75" "80" "85"
インデックスが文字列の最後から始まると仮定して、「開始」と「停止」の値を与える「逆」部分文字列を行う簡単な関数を書くこともできます。
revSubstr <- function(x, start, stop) {
x <- strsplit(x, "")
sapply(x,
function(x) paste(rev(rev(x)[start:stop]), collapse = ""),
USE.NAMES = FALSE)
}
revSubstr(x, start = 1, stop = 2)
# [1] "79" "84" "89"
これがstringr
ソリューションです。
str_extract(x, "^.{3}")
gsub
...を使用します.
x <- c("75 to 79", "80 to 84", "85 to 89")
gsub(" .*$", "", x) # Replace the rest of the string after 1st space with nothing
[1] "75" "80" "85"