R での観測数のカウント

Manav Narula 2021年2月25日
R での観測数のカウント

現実の状況では、私たちは大規模なデータセットを扱います。これは何百ものオブザベーションを超えるかもしれませんし、時には全体からいくつかの特定のデータを抽出する必要があるかもしれません。

そのような状況のために、このフィルタリングされたデータの総オブザベーションを数えるのに役立ついくつかのメソッドが R にあります。このチュートリアルでは、以下の DataFrame で作業します。

df <- data.frame( gender = c("M","F","M","M"),
                  age = c(18,19,14,22),
                  stream = c("Arts","Science","Arts","Commerce"))
print(df)

出力:

  gender age   stream
1      M  18     Arts
2      F  19  Science
3      M  14     Arts
4      M  22 Commerce

最初のメソッドは、関数 with()sum() を含みます。

with() 関数は、データセット全体に適用した後、ある式に基づく論理ベクトルを返し、sum() 関数は、すべての True オブザベーションの合計を返します。

以下のコードスニペットは、これがどのように動作するかを示しています。

df <- data.frame( gender = c("M","F","M","M"),
                  age = c(18,19,14,22),
                  stream = c("Arts","Science","Arts","Commerce"))
                  
sum(with(df,gender == "M"))
[1] 3

& 演算子を使って複数の式を追加することもできます。

sum(with(df,gender == "M" & stream == "Commerce"))
[1] 1

別の方法として、nrow() 関数を利用する方法があり、これはデータセットの行数を返します。以下に示すように、DataFrame から必要なオブザベーションをフィルタリングすることができます。

nrow(df[df$gender == "M",])
[1] 3

ここでも、with() 関数で行っているように、複数の式を追加することができます。

nrow(df[df$gender == "M" & df$stream == "Commerce",])
[1] 1

dplyr ライブラリで提供されている filer() 関数を使用することもできます。これは何らかの条件に基づいてデータのサブセットを返します。以下の例はその方法を説明するものです。

library(dplyr)
nrow(filter(df,gender == "M"))
[1] 3
nrow(filter(df,gender == "M" & stream == "Commerce"))
[1] 1
著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

関連記事 - R Data Frame