x[floor(d)] + x[ceiling(d)]中的错误:二元运算符的非数值变元

qgelzfjb  于 2023-06-27  发布在  其他
关注(0)|答案(4)|浏览(381)

我试图绘制一个简单的病毒载量和试验组箱形图,但不断出现此错误“x[floor(d)] + x[ceiling(d)]中的错误:二元运算符“”的非数值参数。
数据集

PatientID  trial_arm   viral_load 
1          club        19
2          clinic      19
3          club        19
4          club        64
5          clinic      32
6          clinic      29
7          clinic      92
8          club        19
9          clinic      19
10         club        27

当我运行代码时:

> boxplot(dataset,viral_load~trial_arm)
Error in x[floor(d)] + x[ceiling(d)] : 
  non-numeric argument to binary operator

trial_arm变量设置为因子,viral_load为数值。

dffbzjpn

dffbzjpn1#

这也发生在我身上,但后来我意识到我把响应变量和预测变量的顺序放错了。
箱线图(响应~预测因子,数据=数据集)

omvjsjqw

omvjsjqw2#

jay.sf在评论中提出的解决方案很有效。在运行代码以生成箱线图时,还需要使用ggplot(),即ggplot() + boxplot(viral_load ~ trial_arm, dataset)

slsn1g29

slsn1g293#

我也遇到了同样的问题,我通过交换变量来解决这个问题,然后用“$”符号来解决这个问题。我首先使用int变量,然后使用~,最后使用字符串变量。所以在您的例子中,它将是boxplot(dataset$viral_load ~ dataset$trial_arm)

library(readxl)
employee_data <- read_excel("Employee.xls", 
                            sheet = "Employee data", col_types = c("numeric", 
                                                                   "text", "date", "numeric", "numeric", 
                                                                   "numeric", "numeric", "numeric"))
View(employee_data)
str(employee_data)

head(employee_data)
tail(employee_data)
plot(employee_data)
#Same variable function
boxplot(employee_data$ID,employee_data$Salary)
#different variable function
boxplot(employee_data$Salary ~ employee_data$Gender)
oewdyzsn

oewdyzsn4#

我的问题,创造了这个错误是,我正在使用欧洲格式的数据文件,因此有逗号分隔小数,而不是点分隔。用点代替逗号后,一切都很好。

相关问题