私はアンケートデータを含むデータテーブルを持っているので、最初の列は、参加者IDとそれに続く各アンケートの列とそれに続く別々の質問です。例えば、データテーブルがA
が1回のアンケートで、B
は異なるものである場合には、次のようになります。mutate_atとsum関数を使用して特定の列で行の値を合計しますか?
ID A1 A2 A3 B1 B2
1 3 5 3 4 2
2 2 5 2 2 1
3 4 1 3 4 1
4 3 2 3 3 2
私はdplyr機能を使用して、これをコーディングすることにしたいです。私はdplyr
のmutate_atを使用して、それぞれのアンケートの要約を見つけるのに問題があります。それぞれについてはID
です。質問用紙A
(A1
、A2
、およびA3
)の合計とB
...のようなものを探したいと思います。
data %>%
group_by(ID) %>%
mutate_at(vars(contains("A")), funs(sum)) %>%
ungroup()
は、しかし、常にこれを実行している私に
のエラーを与える:しかし、私のデータテーブルは、その中の多くのアンケートを(A
、
B
、
C
、
D
.....など)ので、私のコードは、今のように見えています
Error: invalid 'type' (character) of argument
と私はなぜ理解できません。私がmutate_each
を試してみると、同じことが起こります。これをどうすれば解決できますか?
gsubは何を説明できますか?またsum(value)の値はどこから来ますか?... – dizzle
'gsub'では数値を削除しています。例えば、A1はAになります。プロセスを視覚化したい場合は、この 'melt(mydf、id.var =" ID ")%>%mutate(variable = gsub(pattern =" [0-9 ] + "、置換=" "、x =変数))'。同様に、 'melt(mydf、id.var =" ID ")'だけを実行することをお勧めします。次に、 'variable'と' value'がどこから来たのかを見ることができます。 reshape2パッケージとdplyrパッケージが必要であることを思い出してください。 – jazzurro
@dizzleコードがうまく機能しましたか? – jazzurro