即使我的 R Markdown 文件是默认文件,它也不会编织。我总是收到错误:
错误:$ 运算符对原子向量无效 执行停止
我该如何停止这个错误?我正在使用来自 GitHub 的分叉存储库,但我认为这与错误无关。此外,这只是不会编织的默认 RMarkdown 文件。
答案 0 :(得分:0)
发生此错误是因为您尝试使用 $ 运算符对原子向量进行子集化。此 $ 运算符仅适用于 list
和 data.frame
对象。您可以使用如下代码重新创建此错误:
vec <- c('a' = 1, 'b' = 2, 'c' = 3)
vec$b
Error in vec$b : $ operator is invalid for atomic vectors
因此,要解决此问题,您应该查找 Rmarkdown 文件中出现 $ 运算符的每个部分。然后,尝试确定应用此运算符 $ 的对象实际上是原子向量还是矩阵。您可以使用 is.list()
和 is.vector
函数执行此操作。例如,如果对象的名称是 vec
,您将执行以下操作以查看它是否为原子向量:
is.vector(vec) & !is.list(vec)
[1] TRUE
如果上面的测试结果是TRUE
,那么这个对象就是一个原子向量,你知道这个对象就是你的错误源。但是如果结果是 FALSE
,那么你应该使用 is.matrix()
函数测试对象是否实际上是一个矩阵:
is.matrix(vec)
[1] TRUE
如果上面的测试结果是 TRUE
,那么对象就是矩阵,你知道这个对象也可能是你的错误来源。