文字データを数字と文字に分割する 質問する

文字データを数字と文字に分割する 質問する

文字データのベクトルがあります。ベクトルの要素のほとんどは、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])"
           )

おすすめ記事