参数不是数字或逻辑的:返回的参数在R中不是数字或逻辑的
所以我使用下面的代码参数不是数字或逻辑的:返回的参数在R中不是数字或逻辑的,r,group-by,summarize,R,Group By,Summarize,所以我使用下面的代码maindata是一个玩家、他们的家乡和每场比赛的积分表。我正在尝试制作一个新的表格,其中一列是城市,第二列是每场比赛的平均分(如表a所示)。我一直得到一个表,其中列出了城市,并且AvgPoints的行都显示NA。我得到这个错误“参数不是数字或逻辑的:返回的参数不是数字或逻辑的”,并且它会重复数百次。主要数据有3561次观测 point <- maindata%>% group_by(City, State) %>% summarise(AvgP
maindata
是一个玩家、他们的家乡和每场比赛的积分表。我正在尝试制作一个新的表格,其中一列是城市,第二列是每场比赛的平均分(如表a所示)。我一直得到一个表,其中列出了城市,并且AvgPoints
的行都显示NA。我得到这个错误“参数不是数字或逻辑的:返回的参数不是数字或逻辑的”,并且它会重复数百次。主要数据有3561次观测
point <- maindata%>%
group_by(City, State) %>%
summarise(AvgPoints = mean(PTS.1, na.rm = TRUE))
如果列不是数字,我们首先将其转换为
numeric
,然后执行分组操作
library(dplyr)
maindata %>%
mutate(PTS.1 = as.numeric(as.character(PTS.1))) %>%
group_by(City, State) %>%
summarise(AvgPoints = mean(PTS.1, na.rm = TRUE), .groups = 'drop')
请检查
str(maindata)
中的列类型。或者特别是类(maindata$PTS.1)
可能是“PTS.1”不是numeric@akrun它说,它们是影响因素。我不太清楚为什么。如果有一些元素是非数字的,即它将被读取为字符
。在新版本的R中,它应该是character
类而不是factor
,因为默认情况下stringsafactors=FALSE
。我的观点是,如果列具有c(1.5,1.2,'a1')
,则它不是数字列,因为其中一个元素不是数字。您可以使用maindata%>%mutate(PTS.1=as.numeric(as.character(PTS.1)))将因子转换为数值
,然后按进行分组。将非数字转换为数字时会出现一些友好的警告NA@akrun太好了,我理解你的观点,我已经应用了这个函数并使它工作起来。非常感谢。
library(dplyr)
maindata %>%
mutate(PTS.1 = as.numeric(as.character(PTS.1))) %>%
group_by(City, State) %>%
summarise(AvgPoints = mean(PTS.1, na.rm = TRUE), .groups = 'drop')