1. ホーム
  2. r

[解決済み] データフレームのデリミターでカラムを分割する【重複

2022-03-05 20:08:25

質問

データフレーム内で、区切り記号をもとに1列を2列に分割したい。例えば

a|b
b|c

になるように

a    b
b    c

をデータフレーム内に配置する。

ありがとうございます。

解決方法は?

@Taesung Shin の言うとおりですが、その後、もう少し魔法を使って、これを data.frame . 曖昧さを避けるために "x|y" の行を追加してみました。

df <- data.frame(ID=11:13, FOO=c('a|b','b|c','x|y'))
foo <- data.frame(do.call('rbind', strsplit(as.character(df$FOO),'|',fixed=TRUE)))

あるいは、既存のdata.frameのカラムを置き換える場合。

within(df, FOO<-data.frame(do.call('rbind', strsplit(as.character(FOO), '|', fixed=TRUE))))

を生成するものです。

  ID FOO.X1 FOO.X2
1 11      a      b
2 12      b      c
3 13      x      y