2017-09-21 1 views
0

私はdata.frame 'studentdata'を使用しています。私は女性から男性を分類しました。私はHoursSleptという新しい列を作成しました。今、私は男性の標準偏差をHoursSlept列で見つけなければならず、Femalesでも同じです。Rの性別別ソートデータの標準偏差はどのようにして求められますか?

誰かが私を助けることができますか?

ここに私がしたことがありますが、私はそれが私に与えているsdを知らない。

sd(Males$HoursSlept, na.rm = T) 
sd(Females$HoursSlept, na.rm = T) 

男性と女性がdata.framesなので、あなたがデータから1列を渡す必要があります:あなたはそれをあなたの方法をしたい場合は

R console code

+0

あなたは 'studentdata'がどのように見えるかを示してもらえますか? 'str(studentdata)'や 'head(studentdata)'を実行してみてください。ジェンダーは単一の列ですか、それでフィルタリングしていますか? – beigel

+0

ありがとうございますが、誰かが既に回答しています!あなたがとても親切であれば、私は間違いなくもっと多くの質問をします。 –

答えて

3

次のように記述する必要があると思います。フレームを関数に渡します。よりエレガントな方法は、2つのdata.framesでデータを分割しないことです。代わりに、dplyrのフィルタ関数を使用することができます。

library(dplyr) 
studentdata %>% 
    filter(Gender == "male") %>% 
    summarise(sd = sd(HoursSlept, na.rm = T)) 

また、女性についても同様です。または@MrGumbleはGROUP_BYで一度に両方の提案として:

studentdata %>% 
    group_by(Gender) %>% 
    summarise(sd = sd(HoursSlept, na.rm = T)) 
+0

すばやく簡単に回答をいただきありがとうございます! –

+1

'dplyr'を導入したので、' studentdata%>%group_by(Gender)%>%summarize(sd = sd(HoursSlept、na.rm = TRUE)) 'を使って両方の性別を同時に打つことができます。 – MrGumble

+0

@MrGumble右、忘れました。私は答えに加えました。 – jeypeu

0
library(Hmisc) 
attach(studentdata) 
summarize(HoursSlept,gender,sd)