私はいくつかの細胞はカンマ区切りの値の文字列を含むdata.frameありますtidyr利用separate_rows
d <- data.frame(a=c(1:3),
b=c("name1, name2, name3", "name4", "name5, name6"),
c=c("name7","name8, name9", "name10"))
を私は、それぞれの名前が独自のセルに分割され、これらの文字列を区切りにしたいです。
1度1度行った場合は簡単です。しかし、それぞれの文字列の名前の数が同じであることが必要なので、同時に "b"と "c"の両方の列に対してこれを行うことはできません。書き込みの代わりに
tidyr::separate_rows(d, b, sep=",")
tidyr::separate_rows(d, c, sep=",")
これを行う方法は、1行で行うことができますか。適用あり?何かのように
apply(d, 2, separate_rows(...))
separate_rows()
関数に引数を渡す方法がわかりません。
一度に2つの列を使用できない理由がわかりません。 'separate_rows_'の引数は' cols'と呼ばれます。これは複数の列が可能だと思うようにしますが、データはここでは許可されません。 –
はい、各行に同じ行を書き込むことはできますが、n列に対してこれを行う方法はありますか? 10個以上の列がある場合は面倒です。 cols引数に関して、両方の列を同時にインクルードすると、エラーが発生します。 – user23413
@ user23413のように、 'tidyrを使いたい場合は' for(col in c( "b"、 "c"))d < - separate_rows_(d、col、sep = "、") ' –