2016-11-21 3 views
-4

Rの希望の出力(希望する出力1と2)に再構成したい次のデータがあります。これにより、元の値に基づいて追加された列に変数名を解析する必要があります。入力データの複数の列列名を使用してRのデータを整形する

添付ファイルがスクリーンショットです。

お気軽にお問い合わせください。 dplyrtidyrを使用

data from input to desired outputs

+0

を(DF1 [-1]、関数(X)のtoString(X [Xを適用= 'cbidn(DF1 [1]、OUTPUTを試します= 0]))) ' – akrun

+0

@akrun、あなたがここで意図したことは分かりません。あなたのコードを動作させることができません。あなたが 'lapply'または' apply'( 'MARGIN'引数がない' apply 'の場合)を意味するかどうかはわかりません。これらのオプションの明白な順列で希望の出力を得ることはできません。 (また、あなたは 'cbind'のスペルを間違えてしまった) – Benjamin

+0

私はいくつかのタイプミスがあります。私は 'cbind(DF [1]、OUTPUT = apply(DF [-1]、1、FUN = function(x)toString(names(x)[x!= 0]))))' – akrun

答えて

3

DF <- data.frame(ID = 1:3, 
       A = c(0, 1, 1), 
       B = c(1, 0, 0), 
       C = c(0, 0, 0), 
       D = c(1, 0, 1), 
       E = c(0, 1, 0)) 
library(dplyr) 
library(tidyr) 

out1 <- 
    gather(DF, letter, bit, A:E) %>% 
    filter(bit == 1) %>% 
    arrange(ID, letter) 

out2 <- 
    out1 %>% 
    group_by(ID) %>% 
    summarise(output = paste0(letter, collapse = ",")) 
+0

助けてくれてありがとう。それは魅力のように働く – skw1990

関連する問題