如何识别语言同质家庭?基于R DataFrame的统计需求
统计语言同质/异质家庭数量(R语言实现)
核心思路
以Number作为家庭唯一标识,按家庭分组后统计每个家庭中DAILY_LANG的唯一值数量,再根据数量分类统计仅用一种语言(同质)和使用两种语言的家庭数。
基础版代码实现
library(dplyr) # 按家庭分组,计算每个家庭的语言类型数量 family_lang_summary <- df %>% group_by(Number) %>% summarise(unique_lang_count = n_distinct(DAILY_LANG)) %>% ungroup() # 统计两类家庭的数量 single_lang_count <- sum(family_lang_summary$unique_lang_count == 1) two_lang_count <- sum(family_lang_summary$unique_lang_count == 2) # 输出结果 cat("仅使用一种语言的家庭数:", single_lang_count, "\n") cat("使用两种语言的家庭数:", two_lang_count, "\n")
基础版运行结果
仅使用一种语言的家庭有4个(编号33、1、62、69),使用两种语言的家庭有2个(编号31、36)。家庭30包含3种语言类型(1、0、11),不在本次统计的两类范围内。
可选:过滤无效值(若0为未填写项)
如果DAILY_LANG中的0代表无效回答,可先过滤再统计:
family_lang_summary_filtered <- df %>% filter(DAILY_LANG != 0) %>% group_by(Number) %>% summarise(unique_lang_count = n_distinct(DAILY_LANG)) %>% ungroup() single_lang_count_filtered <- sum(family_lang_summary_filtered$unique_lang_count == 1) two_lang_count_filtered <- sum(family_lang_summary_filtered$unique_lang_count == 2) cat("过滤0值后,仅使用一种语言的家庭数:", single_lang_count_filtered, "\n") cat("过滤0值后,使用两种语言的家庭数:", two_lang_count_filtered, "\n")
过滤后结果
过滤0值后,仅使用一种语言的家庭有5个(编号33、1、62、69、36),使用两种语言的家庭有2个(编号30、31)。
内容的提问来源于stack exchange,提问作者Kian
相关产品推荐
相关产品推荐

