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 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