【问题标题】:Error in R Markdown (non-numeric argument to binary operator)R Markdown 中的错误(二元运算符的非数字参数)
【发布时间】:2019-05-03 05:05:58
【问题描述】:

我只在尝试将 R Markdown 编织到 Word 文档时遇到此错误。该代码在其他地方(在 Rscript 中)运行良好。此外,我已经显示了以前的代码:

numericScores = transform(correctedScores, beer2_score =     as.numeric(beer2_score))
numericScores = transform(correctedScores, beer3_score = as.numeric(beer3_score))
numericScores = transform(correctedScores, beer4_score = as.numeric(beer4_score))
numericScores = transform(correctedScores, beer5_score = as.numeric(beer5_score))
numericScores = transform(correctedScores, beer6_score = as.numeric(beer6_score))

# testing to see if they are indeed numeric
 sapply(numericScores, mode)

correctedGuesses = Guesses[complete.cases(Guesses), ]
str(correctedGuesses)
correctedGuesses

correctedScores = numericScores[complete.cases(numericScores), ]
str(correctedScores)
correctedScores
########

# trying to put scores in correct order 

# first I will label the beers with their names

for(i in 1:45){
  for(j in 2:7) {
if (Order[i,j] == 1) { Order[i, j] = "Miller"}
if (Order[i,j] == 2) { Order[i, j] = "Natural"}
if (Order[i,j] == 3) { Order[i, j] = "Keystone"}
if (Order[i,j] == 4) { Order[i, j] = "Busch"}
if (Order[i,j] == 5) { Order[i, j] = "Bud"}
if (Order[i,j] == 6) { Order[i, j] = "Miller"}
  } 
}

# Deleting the unused/unavailable Order rows
Order = Order[-c(4, 33),]


Miller_sc = 0 
Natural_sc = 0
Keystone_sc = 0
Busch_sc = 0
Bud_sc = 0

B = c(
Miller_sc, 
Natural_sc,
Keystone_sc,
Busch_sc,
Bud_sc )

for (i in 1:43) {
 for (j in 2:7) {
if (Order[i,j] == "Miller") {B[1] = B[1] + correctedScores[i,j]}
if (Order[i,j] == "Natural") {B[2] = B[2] + correctedScores[i,j]}
if (Order[i,j] == "Keystone") {B[3] = B[3] + correctedScores[i,j]}
if (Order[i,j] == "Busch") {B[4] = B[4] + correctedScores[i,j]}
if (Order[i,j] == "Bud") {B[5] = B[5] + correctedScores[i,j]}
 }
}

错误显示:

B[3] + CorrectedScores[i, j] 中的错误:二进制的非数字参数 运算符调用:...句柄->withCallingHandlers-> withVisible -> eval -> eval 执行停止

【问题讨论】:

  • 你能发布一些示例数据吗?

标签: r error-handling r-markdown


【解决方案1】:

此类错误的常见原因是文档中的代码引用了全局环境中的变量。当你编织文档时,它看不到那个变量,所以你会得到一个错误。

最常见的错误是“未找到变量”的一些变化。你得到一个不同的错误,所以 R 正在其他地方找到一个具有正确名称的变量。

如果没有完整的文档,我们无法确定是什么变量会导致您的问题。当我快速查看您的脚本时,我发现这些变量没有定义:

correctedScores
beer2_score # etc., though these might be columns in correctedScores
Guesses
Order

我还注意到脚本的前 4 行没有执行任何操作,因为第 5 行覆盖了它们的结果。

【讨论】:

    猜你喜欢
    • 2016-11-15
    • 1970-01-01
    • 2016-11-14
    • 2021-08-18
    • 2021-03-24
    • 1970-01-01
    • 2021-03-24
    • 1970-01-01
    相关资源
    最近更新 更多