这个错误提示意味着在计算斜率时,first_valfourth_val 中有非数值参数。可能是因为有缺失值或者数据类型不匹配导致的。可以先检查一下 Concentration 列中是否有缺失值,以及它的数据类型是否为数值型。可以使用以下代码进行检查:

sum(is.na(df$Concentration)) # 检查缺失值个数
class(df$Concentration) # 检查数据类型

如果发现有缺失值,可以使用 na.omit() 函数将缺失值删除;如果数据类型不是数值型,可以使用 as.numeric() 函数将其转换为数值型。修改后的代码如下:

df <- dat %>%
  select(1,3:8,13,16,17) %>% 
  arrange(Gas, Date, Nrate, Hybrid, Plotnum, Concentration) %>% 
  mutate(group = rep(1:(ceiling(n()/4)), each = 4)[1:n()]) %>% # 添加分组列
  group_by(group) %>%
  mutate(Concentration = as.numeric(Concentration), # 将Concentration列转换为数值型
         Concentration = na.omit(Concentration), # 删除缺失值
         first_val = first(Concentration), # 计算第一行数值
         fourth_val = last(Concentration), # 计算第四行数值
         n_vals = sum(!is.na(Concentration)), # 计算非缺失值个数
         Slope = ifelse(is.na(first_val) | is.na(fourth_val), # 判断是否需要进行计算
                        NA,
                        (fourth_val - first_val) / 30))

这样修改后,再运行代码就不会出现上述错误了。


原文地址: http://www.cveoy.top/t/topic/MCO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录