关于 R 的问题,如何取每个类别的平均值?

Question about R, How can take the mean of each category?

我正在尝试编写一个代码来计算每个类别被命名的次数,然后取每个类别的平均值。
我该怎么做?一个for循环?如果还有的话?函数?

所以我想写一个代码,每次我能看到''Location''。它存储然后告诉我这个类别中有 4 个。我也想取平均值。所以 4 除以 25 = .16

"location"    "Masculinity" "ownership"   "Masculinity" "difference" 
"agency"      "agency"      "Feminality"  "ownership"   "Feminality" 
"ownership"   "location"    "agency"      "Masculinity" "difference" 
"location"    "Feminality"  "ownership"   "agency"      "Masculinity"
"difference"  "difference"  "Feminality"  "location"    "Masculinity"

谢谢。

table() 命令将在向量中产生 table 项的频率:

vec <- c("location",    "Masculinity", "ownership",   "Masculinity", "difference", 
         "agency",      "agency",      "Feminality",  "ownership",   "Feminality", 
         "ownership",   "location",    "agency",      "Masculinity", "difference", 
         "location",    "Feminality",  "ownership",   "agency",      "Masculinity",
         "difference",  "difference",  "Feminality",  "location",    "Masculinity")



 Frequency <- table(vec)
 Weight <- Frequency/length(vec)
 ans <- rbind(Frequency, Weight)

一个选项也是split同一个对象的vec,得到lengths除以整个vector的length

lengths(split(vec, vec))/length(vec)
#   agency  difference  Feminality    location Masculinity   ownership 
#   0.16        0.16        0.16        0.16        0.20        0.16 

count 来自 dplyr

library(dplyr)
tibble(vec) %>%
    count(vec) %>% 
    mutate(prop = n/sum(n))
   

或使用 janitor

中的 adorn_percentages
library(janitor)
tibble(vec) %>% 
    count(vec) %>%
    adorn_percentages("col")

数据

vec <- c("location", "Masculinity", "ownership", "Masculinity", "difference", 
"agency", "agency", "Feminality", "ownership", "Feminality", 
"ownership", "location", "agency", "Masculinity", "difference", 
"location", "Feminality", "ownership", "agency", "Masculinity", 
"difference", "difference", "Feminality", "location", "Masculinity"
)