文字データのベクトルがあります。ベクトルの要素のほとんどは、1 つ以上の文字とそれに続く 1 つ以上の数字で構成されています。ベクトルの各要素を文字部分と数字部分に分割したいと考えています。Stackoverflow.com で同様の質問を見つけました。
しかし、上記の回答は私のケースでは完全には機能しないか、何か間違っているようです。サンプルのベクトルを以下に示します。
my.data <- c("aaa", "b11", "b21", "b101", "b111", "ccc1", "ddd1", "ccc20", "ddd13")
# I can obtain the number portion using:
gsub("[^[:digit:]]", "", my.data)
# However, I cannot obtaining the character portion using:
gsub("[:digit:]", "", my.data)
文字部分を取得するにはどうすればよいですか? Windows 7 64 ビット マシンで R バージョン 2.14.1 を使用しています。
ベストアンサー1
これまでの回答ではどれも使用されていないので、tidyr::separate
ここに記載します。
library(tidyr)
df <- data.frame(mycol = c("APPLE348744", "BANANA77845", "OATS2647892", "EGG98586456"))
df %>%
separate(mycol,
into = c("text", "num"),
sep = "(?<=[A-Za-z])(?=[0-9])"
)