[英]How to use data.table to efficiently calculate allele frequencies (proportions) by group across multiple columns (loci)
[英]Calculate proportions for multiple variables according to factor level across multiple columns
我有一些人口統計變量和問題變量的調查數據,這些變量已被編碼為二進制數據。
演示變量如下所示:
urban labor_force
<fct> <fct>
rural in labor force
urban in labor force
rural not in labor force
問題變量如下所示:
Q65_armedforces Q69_police Q70_courts
<int> <int> <int>
1 1 1
1 0 1
0 0 0
整個數據集的結構如下:
urban labor_force Q65_armedforces Q69_police Q70_courts
<fct> <fct> <int> <int> <int>
rural in labor force 1 1 1
urban in labor force 1 0 1
rural not in labor force 0 0 0
我想要實現的是我可以寫入 csv 的表格,對於所有問題變量,人口統計變量中每個因子水平的比例為 1。 所以最終產品看起來像這樣(使用數據集中的實際數字更新):
urban rural in labor force not in labor force
Q65_armed forces 0.85 0.88 0.86 0.86
Q69_police 0.84 0.84 0.83 0.85
Q70_courts 0.74 0.76 0.75 0.75
數字來源於
wvs_final %>% group_by(urban) %>% summarize(mean(Q65_armedforces, na.rm=TRUE))
wvs_final %>% group_by(urban) %>% summarize(mean(Q69_police, na.rm=TRUE))
wvs_final %>% group_by(urban) %>% summarize(mean(Q70_courts, na.rm=TRUE))
wvs_final %>% group_by(labor_force) %>% summarize(mean(Q65_armedforces, na.rm=TRUE))
wvs_final %>% group_by(labor_force) %>% summarize(mean(Q69_police, na.rm=TRUE))
wvs_final %>% group_by(labor_force) %>% summarize(mean(Q70_courts, na.rm=TRUE))
我有大約 50 個問題變量,所以我不想嘗試使用 group_by 來單獨獲取這些變量,但我堅持使用 go 來實現自動化。
謝謝你的幫助。
您可以獲得長格式的數據,並為每列計算mean
。
library(dplyr)
library(tidyr)
df %>%
pivot_longer(cols = urban:labor_force) %>%
group_by(value) %>%
summarise(across(Q65_armedforces:Q70_courts, mean, na.rm = TRUE))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.