-4
Rの希望の出力(希望する出力1と2)に再構成したい次のデータがあります。これにより、元の値に基づいて追加された列に変数名を解析する必要があります。入力データの複数の列列名を使用してRのデータを整形する
添付ファイルがスクリーンショットです。
お気軽にお問い合わせください。 dplyr
とtidyr
を使用
Rの希望の出力(希望する出力1と2)に再構成したい次のデータがあります。これにより、元の値に基づいて追加された列に変数名を解析する必要があります。入力データの複数の列列名を使用してRのデータを整形する
添付ファイルがスクリーンショットです。
お気軽にお問い合わせください。 dplyr
とtidyr
を使用
:
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 = ","))
助けてくれてありがとう。それは魅力のように働く – skw1990
を(DF1 [-1]、関数(X)のtoString(X [Xを適用= 'cbidn(DF1 [1]、OUTPUTを試します= 0]))) ' – akrun
@akrun、あなたがここで意図したことは分かりません。あなたのコードを動作させることができません。あなたが 'lapply'または' apply'( 'MARGIN'引数がない' apply 'の場合)を意味するかどうかはわかりません。これらのオプションの明白な順列で希望の出力を得ることはできません。 (また、あなたは 'cbind'のスペルを間違えてしまった) – Benjamin
私はいくつかのタイプミスがあります。私は 'cbind(DF [1]、OUTPUT = apply(DF [-1]、1、FUN = function(x)toString(names(x)[x!= 0]))))' – akrun