如何修复:fun(newx[, i], …) 中的错误:参数类型 '(字符)


在 R 中您可能遇到的错误是:

 Error in sum(x): invalid 'type' (character) of argument

当您尝试对字符向量执行数学运算(例如求和、求平均值、数字等)时,会出现此错误。

本教程解释了如何在实践中解决此错误。

如何重现错误

假设我们在 R 中创建以下数据框:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 points=c(10, 12, 15, 20, 26, 25),
                 rebounds=c(7, 8, 8, 14, 10, 12))

#view data frame
df

  team points rebounds
1 to 10 7
2 to 12 8
3 to 15 8
4 B 20 14
5 B 26 10
6 B 25 12

现在假设我们尝试计算“团队”列的总和:

 #attempt to calculate sum of values in 'team' column
sum(df$team)

Error in sum(df$team): invalid 'type' (character) of argument

我们收到错误,因为“团队”列是字符列。

我们可以使用class()函数确认这一点:

 #view class of 'team' column
class(df$team)

[1] “character”

如何修复错误

解决此错误的方法是仅对数字向量使用数学运算。

例如,我们可以使用sum()函数来计算“points”列中值的总和:

 #calculate sum of values in 'points' column
sum(df$points)

[1] 108

我们还可以计算按团队分组的分值总和:

 #calculate sum of points, grouped by team
aggregate(points ~ team, df, sum)

  team points
1 to 37
2 B 71

我们甚至可以计算按球队分组的得分篮板值的总和:

 #calculate sum of points and sum of rebounds, grouped by team
aggregate(.~team, df, sum)

  team points rebounds
1 A 37 23
2 B 71 36

请注意,我们不会收到任何这些操作的错误,因为我们只是尝试计算数值变量的总和。

其他资源

以下教程解释了如何修复 R 中的其他常见错误:

如何修复:条件长度 > 1 并且仅使用第一个元素
如何修复:二元运算符的非数字参数
如何解决:dim(X) 必须具有正长度
如何修复:选择未使用的参数时出错

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注