2017-04-10 18 views
-2

私は比較的新しいRです。サブセット/グループの統計を作成しようとしています。データのサブグループに関連する頻度を生成するR

私は、次のコードを使用してemittentや年によって全体的なサンプルのためのトランザクションの数を得ることができた:私は企業数で例を探すことにより、設定されたデータから情報を抽出したい

Emittent <- (data.frame(table(Emittent))) 

を(Emittent)年(=別の変数)しかし、私はこれらの条件付き要求を形成する方法を知らない。 Stataでは、私はしばしばifのステートメントを使いましたが、Rでそれをどのように扱うかはわかりません。

私はデータフレームを扱っています。

+1

読むヘルプ( "[")。これは部分集合の良い紹介になるでしょう。また、Rチュートリアルの初めに1〜2時間かかることもありますので、最初のトピックの1つになるでしょう。 – lmo

+0

再現可能な例[mcve]を教えてください! http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – jogo

答えて

0

Rのサブセットは、角括弧[で達成されます。角括弧の中には、まず行と列が参照されます。すべての必要がある場合は、どちらの指定も空白のままにしてください。以下が動作する観測をサブセットに

data("mtcars") 
cyl_4 <- mtcars[mtcars$cyl == 4, ] 

ありsubset()機能

subset(mtcars, cyl == 4) 

でもある。しかしStataのから来る誰かのために、私は本当にdplyrパッケージ

library(dplyr) 
filter(mtcars, cyl == 4) 
    mpg cyl disp hp drat wt qsec vs am gear carb 
1 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 
2 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2 
3 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2 
4 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1 
5 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2 
6 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1 
7 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1 
8 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1 
9 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2 
10 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2 
11 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2 
をお勧めします

要約を計算する場合も同じ原則が適用されますサブグループによってtatistics:

mean(mtcars$mpg[mtcars$cyl == 4]) 
[1] 26.66364 

dplyr

cyl_4 <- mtcars %>% 
    filter(cyl == 4) %>% 
    summarise(mean(mpg)) 
     mean(mpg) 
    1 26.66364 

または、

mtcars %>% group_by(cyl) %>% 
    summarise(mean(mpg)) 
# A tibble: 3 × 2 
    cyl `mean(mpg)` 
    <dbl>  <dbl> 
1  4 26.66364 
2  6 19.74286 
3  8 15.10000 
+0

これは本当に私の質問ではありませんでした。私は、条件文を使ってどのようにサブグループを数えることができるかを知りたかったのです。 – Bonsaibubble

+0

例:y = 2016の場合はxの平均が必要です。 – Bonsaibubble

+0

が開発された例を追加するように編集されました –

関連する問題