R语言代码报错:对象'caloriesdif'未找到,无法获取最大值
问题解决:Error: object 'caloriesdif' not found
你的问题出在管道的最后一步——max(caloriesdif)不能直接这么用。原因是管道传递给max()的是整个数据框,而基础R的max()函数需要的是向量,它找不到全局环境里的caloriesdif对象(这个列只存在你刚生成的临时数据框里)。
给你两种可行的修正方案:
方案1:用dplyr的summarise()提取最大值
activity_and_calories %>% mutate(caloriesdif = Calories.x - Calories.y) %>% summarise(max_caloriesdif = max(caloriesdif, na.rm = TRUE))
加上na.rm = TRUE是为了避免数据里有缺失值时报错,如果你确定数据没有NA,可以去掉这个参数。
方案2:先把列提取成向量再用max()
activity_and_calories %>% mutate(caloriesdif = Calories.x - Calories.y) %>% pull(caloriesdif) %>% max(na.rm = TRUE)
pull()会把指定列从数据框中提取为向量,这样max()就能正常计算最大值了。
内容的提问来源于stack exchange,提问作者Callie McDonough
相关产品推荐
相关产品推荐

