R 中的觀測值計數
Manav Narula
2021年2月25日
2021年1月22日
在現實生活中,我們要處理大量的資料集。這可能會超過數百個觀測值,有時可能需要從整體中提取一些特定的資料。
對於這樣的情況,我們在 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
Author: Manav Narula
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