关于 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"
)
我正在尝试编写一个代码来计算每个类别被命名的次数,然后取每个类别的平均值。
我该怎么做?一个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"
)