R语言重编码Tactic变量并计算不同类群鱼类平均体长方法
鱼类迁徙策略体长统计代码修正
错误点说明
case_when中判断相等需使用双等号==,不可使用赋值号=- 字符型取值必须包裹在英文双引号内,原有代码中的
EstRes、OcRes、Resident均未加引号,会被识别为变量而非字符值 - 括号与管道符匹配错误:
mutate、case_when的右括号缺失,mutate运算结束后需加%>%连接后续分组逻辑,末尾多余的%>% avlen属于语法错误,需删除 - 建议在
mean、sd函数中添加na.rm = TRUE参数,避免因体长存在缺失值导致统计结果返回NA
修正后代码
library(dplyr) avlen <- combo1 %>% # 筛选2018年5龄个体,合并两个filter条件写法更简洁 filter(Age_Year == 5, Sample.Year == 2018) %>% droplevels() %>% mutate(TacticB = case_when( # 合并两个居留型的判断条件,减少重复代码 Tactic %in% c("EstRes", "OcRes") ~ "Resident", TRUE ~ "Migratory" )) %>% group_by(TacticB) %>% summarise( avlen = mean(Length_cm, na.rm = TRUE), stdev = sd(Length_cm, na.rm = TRUE) ) avlen
注:你提供的示例combo1数据未包含Age_Year、Sample.Year、Length_cm字段,实际运行时请确认你的完整数据集包含上述字段。
内容的提问来源于stack exchange,提问作者Angela Russell
相关产品推荐
相关产品推荐

