df - dat + select138131617 + arrangeGas Date Nrate Hybrid Plotnum Concentration + mutategroup = rep1ceilingn4 each = 41n # 添加分组列+ group_bygroup + mutatefirst_val = firstConcentration # 计算
这个错误提示意味着在计算斜率时,first_val 和 fourth_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 著作权归作者所有。请勿转载和采集!