1

データのソースを示す3つのダミー変数があります

                DS1    DS2    DS3
       Pers1     1      0      0
       Pers2     0      1      0
       Pers3     0      1      1

そして、私は持っていたいです

                Source
         Pers1   "DS1"
         Pers2   "DS2"
         Pers3   "DS2"|"DS3"

どんな助けでもいただければ幸いです

4

1 に答える 1

2

私はこのようなことをします:

df = data.frame(DS1 = c(1,0,0), 
                DS2 = c(0,1,1), 
                DS3 = c(0,0,1))
df$source = apply(df == 1, 1, function(x) paste(names(df)[x], collapse = "|"))
> df
  DS1 DS2 DS3  source
1   1   0   0     DS1
2   0   1   0     DS2
3   0   1   1 DS2|DS3

ここで、 data.frameapplyの行をループして、文字列を作成します。df == 1paste

于 2013-03-09T21:32:32.707 に答える