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