gather
の機能を理解する際に問題が発生しました。tidyr
です。私は列brown:other
を取得し、それらを一つの変数にするために整理でギャザー機能を理解する問題
tidyv1 <- data.frame(name=c("Jake","Alice","Tim","Denise"),
age=c(34,55,76,19),
brown=c(0,0,1,0),
blue=c(0,1,0,0),
other=c(1,0,0,1),
height=c(6.1,5.9,5.7,5.1))
たい:私は、次のデータフレームを持っています。ここに私のコードは次のとおりです。
tidyc1 <- gather(tidyv1, key=eye_color, value=val, brown:other, factor_key=TRUE)
結果がこれです:
name age height eye_color val
1 Jake 34 6.1 brown 0
2 Alice 55 5.9 brown 0
3 Tim 76 5.7 brown 1
4 Denise 19 5.1 brown 0
5 Jake 34 6.1 blue 0
6 Alice 55 5.9 blue 1
7 Tim 76 5.7 blue 0
8 Denise 19 5.1 blue 0
9 Jake 34 6.1 other 1
10 Alice 55 5.9 other 0
11 Tim 76 5.7 other 0
12 Denise 19 5.1 other 1
私は期待してい結果がこれです:
name age eye_color height
1 Jake 34 other 6.1
2 Alice 55 blue 5.9
3 Tim 76 brown 5.7
4 Denise 19 other 5.1
私は簡単に修正することができることを知っています余分なコードで、私は直接的な方法があるかどうかを理解したい。例えば:
tidyc1[which(tidyc1[,5]==1),1:4]
「ギャザリング」に直接的な方法が組み込まれているとは思わない。しかし、 '0'ではなく' NA'があった場合は、 'na.rm'引数のためにもっと近づくでしょう。 – aosmith