3

次のデータ フレームには、測定値が 1 つの列に連結され、区切り記号で区切られています。

df <- data.frame(v1=c(1,2), v2=c("a;b;c", "d;e;f"))
df
     v1 v2
  1  1  a;b;c
  2  2  d;e;f;g

次の形式に溶解/変換したいと思います。

     v1 v2
  1  1  a
  2  1  b
  3  1  c
  4  2  d
  5  2  e
  6  2  f
  7  2  g

エレガントなソリューションはありますか?

どうも!

4

1 に答える 1

7

で文字列を分割できますstrsplit

2 列目の文字列を分割します。

splitted <- strsplit(as.character(df$v2), ";")

新しいデータ フレームを作成します。

data.frame(v1 = rep.int(df$v1, sapply(splitted, length)), v2 = unlist(splitted))

結果:

  v1 v2
1  1  a
2  1  b
3  1  c
4  2  d
5  2  e
6  2  f
于 2012-12-10T20:34:04.623 に答える