如何在R中基于钓鱼年限分组制作Y轴为年限区间的Likert图?
按钓鱼年限分组制作Likert图的实现方案
1. 生成钓鱼年限分组区间
先把连续的钓鱼年限数据转换成你指定的区间分组,使用cut()函数完成:
# 定义分组断点和对应标签 year_breaks <- c(0, 5, 10, 15, 20, 25, 30, 35, 40, Inf) year_labels <- c("0-5", "6-10", "11-15", "16-20", "21-25", "26-30", "31-35", "36-40", "40+") # 给原数据集添加分组列,替换"fishing_years"为你实际的钓鱼年限列名 interview_data <- interview_data %>% mutate(year_group = cut(fishing_years, breaks = year_breaks, labels = year_labels, right = FALSE))
right = FALSE保证区间为左闭右开,比如"0-5"包含0到5年的样本。
2. 构建分组Likert数据对象
将问题列与分组列结合,转换为因子后创建分组Likert对象:
# 筛选分组列和目标问题列 likert_group_data <- interview_data %>% select(year_group, starts_with("Q5.")) %>% # 强制指定因子顺序,确保选项逻辑对应 mutate(across(starts_with("Q5."), ~factor(., levels = c("我现在使用的渔船平均比以前小", "渔船平均尺寸无变化", "我现在使用的渔船平均比以前大")))) # 创建带分组的Likert对象 likert_group_obj <- likert(likert_group_data, grouping = "year_group")
指定grouping参数为新生成的分组列,同时固定因子顺序能避免绘图时选项错位。
3. 绘制分组Likert图
直接调用绘图函数即可生成目标图,还可按需调整样式:
# 基础绘图 plot(likert_group_obj) # 自定义样式示例(添加标题、调整图例位置) plot(likert_group_obj, main = "不同钓鱼年限渔民的渔船尺寸变化偏好", legend.position = "bottom")
内容的提问来源于stack exchange,提问作者TGuillemin
相关产品推荐
相关产品推荐

