【发布时间】:2022-12-02 22:00:17
【问题描述】:
我有一个汇总表,其中包含 940 行数据集中的 4 个变量的平均值:
activity_means <- activity_daily_clean %>%
summarize(sedentary = mean(sedentary_minutes),
lightly_active = mean(lightly_active_minutes),
fairly_active = mean(fairly_active_minutes),
very_active = mean(very_active_minutes))
我想将它们绘制成一个简单的条形图,但活动强度水平(久坐 - 轻度活跃 - 相当活跃 - 非常活跃)显得杂乱无章:
act_means_df <- data.frame(
activity_intensity=c("sedentary", "lightly active", "fairly active", "very active"),
intens_means=c(991.2106, 192.8128, 13.56489, 21.16489)
)
ggplot(act_means_df)+
geom_col(aes(x=activity_intensity, y=intens_means))
我尝试按照 guide in the R Graph Gallery 按照第二个变量的值重新排序条形图:
act_means_df <- data.frame(
activity_intensity=c("sedentary", "lightly active", "fairly active", "very active"),
intens_means=c(991.2106, 192.8128, 13.56489, 21.16489)
) %>%
mutate(f_act_int = factor(activity_intensity))
act_means_df %>%
fct_reorder(f_act_int, intens_means) %>%
ggplot(aes(x=f_act_int, y=intens_means))+
geom_bar(stat="identity", fill="#f68060", alpha=.6, width=.4) +
coord_flip() +
xlab("") +
theme_bw()
但是当我运行最后一个块时出现以下错误:
fct_reorder() 中的错误:
! .f 必须是因子或字符向量,而不是数据框
我确认 f_act_int 是否是一个因素:str(act_means_df):
'data.frame':4个观测值。 3个变量:
$ activity_intensity: chr "sedentary" "轻微活跃" "相当活跃" "非常活跃"
$ intens_means : num 991.2 192.8 13.6 21.2
$ f_act_int:因子 w/ 4 个级别“相当活跃”,..:3 2 1 4
但是,当我尝试使用 class(f_act_int) 自行检查对象时,错误消息显示“未找到对象‘f_act_int’”。
有人知道我错过了什么吗??
【问题讨论】:
-
您必须添加 DF 的名称
class(act_means__df$f_act_int)