簡體   English   中英

計算數據集每一列的比例(百分比)

[英]Calculate proportion (percent) for each column of a dataset

我正在嘗試計算數據集每一列中類別的比例(百分比)。

示例數據:

df <- data.frame(
    "Size" = c("Y","N","N","Y","Y"), 
    "Type" =  c("N","N","N","Y","N"), 
    "Age" = c("N","Y","N","Y","N"), 
    "Sex"=c("N","N","N","N","N")
  )

df

數據生成如下表格:

    Size Type Age Sex
1    Y    N   N   N
2    N    N   Y   N
3    N    N   N   N
4    Y    Y   Y   N
5    Y    N   N   N

我嘗試使用 prop.table 來計算一個類別的比例:

prop.table(table(df$Size))

這有效,但僅計算一列的 Y 或 N 答案的百分比。 這個數據集非常大,所以我想一次計算每個類別的比例。

我的目標是有一個表格,顯示每列“是”答案的比例。

像這樣:

       Proportion Y
Size    0.60
Type    0.20
Age     0.40
Sex     0.00

我對 R 比較陌生,因此我們將不勝感激!

基礎 R 的一種方法是在邏輯向量上按列apply

apply(df == "Y", 2, mean)

#Size Type  Age  Sex 
# 0.6  0.2  0.4  0.0 

colSums的更簡單版本。

colMeans(df == "Y")

dplyr 方法:

library(dplyr)
df %>% summarise_all(~mean(.=="Y"))

如果您有多個組:

df1 = data.frame(class="A",df)
df2 = data.frame(class="B",df)
#make df2 different
df2$Size<- rep("Y",5)
newdf = rbind(df1,df2)
newdf %>% group_by(class) %>% summarise_all(~mean(.=="Y"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM