R Studio统计专辑Explicit歌曲数时group_by报错的问题求助
错误原因解析
- 管道符使用错误:你误用了整数除法运算符
%/%,而dplyr包的管道操作符应为%>%。%/%会尝试对数据框与函数执行整数除法,导致后续group_by接收到错误类型的对象(字符类),触发no applicable method错误。 - 可能未加载依赖包:
filter、group_by、summarise均属于dplyr包函数,若未提前加载包,会引发函数调用异常。 - 筛选条件匹配问题:原数据集的
explicit列是逻辑类型(取值为TRUE/FALSE,无引号),用explicit == "True"(字符串匹配)可能无法正确筛选目标行。
修正后的代码
# 加载dplyr包 library(dplyr) # 读取数据集 DF <- read.csv("spotify.csv") # 筛选 explicit 为真的行,按专辑分组统计数量,再按数量降序排序 df_explicit_count <- DF %>% filter(explicit) %>% # 等价于 filter(explicit == TRUE),更简洁 group_by(album_name) %>% summarise(count = n()) %>% arrange(desc(count)) # 按数量降序排序,升序则去掉desc() # 查看结果 head(df_explicit_count)
补充说明
- 若不确定
explicit列类型,可执行str(DF$explicit)查看;若为字符型,再改用explicit == "True"做匹配。 - 管道符
%>%的作用是将前一步输出作为后一步输入,保证数据处理流程连贯。
内容的提问来源于stack exchange,提问作者Gianni Hrousis
相关产品推荐
相关产品推荐

