使用min()和max()函数计算数据时返回NA_real_的问题咨询
使用min()和max()函数计算数据时返回NA_real_的问题咨询
你猜的完全没错!返回NA_real_的原因就是你的数据里包含了NA值——R的基础min()和max()函数默认规则是:只要输入的向量里存在NA,就会直接返回NA,不会自动跳过这些缺失值。
另外先帮你揪出代码里的一个小笔误:你写的b = max(dfvar_avg)少了一个美元符号$,应该是max(df$var_avg),不然R会找不到名为dfvar_avg的对象,还会报额外的错误哦。
至于解决方法,有两种常用的方式:
方法一:使用函数自带的
na.rm参数
这是最直接的解决方案,给min()和max()加上na.rm = TRUE参数,让函数忽略NA值再计算:a = min(df$var_avg, na.rm = TRUE) b = max(df$var_avg, na.rm = TRUE)方法二:先过滤NA值再计算
如果你需要先对数据做预处理,也可以先通过索引过滤掉向量里的NA,再传入函数:# 先提取非NA的数值 non_na_vals = df$var_avg[!is.na(df$var_avg)] a = min(non_na_vals) b = max(non_na_vals)
两种方法都能得到正确的最小/最大值,你可以根据自己的需求选择~
备注:内容来源于stack exchange,提问作者Ed_Gravy
相关产品推荐
相关产品推荐

