R markdown:FUN中的错误(X[[i]],…;):无法强制类型';符号';到类型为'的向量;双倍';

R markdown:FUN中的错误(X[[i]],…;):无法强制类型';符号';到类型为'的向量;双倍';,r,r-markdown,knitr,R,R Markdown,Knitr,尽管我可以毫无问题地运行代码,但当我试图将标记文件编入HTML时,这两行简单的代码给了我以下错误: R标记:FUN(X[[i]],…)中出错:无法将类型“symbol”强制为类型“double”调用的向量:。。。使用Visible->eval->eval->data.frame->apply执行暂停 sapply(数据、级别) numdata谢谢@Allan和@quickreaction。数据在Rdata文件中给出。因此,当我打开它时,它会加载到我的全局环境中。它不满足“标记文档是独立的自引用代

尽管我可以毫无问题地运行代码,但当我试图将标记文件编入HTML时,这两行简单的代码给了我以下错误:

R标记:FUN(X[[i]],…)中出错:无法将类型“symbol”强制为类型“double”调用的向量:。。。使用Visible->eval->eval->data.frame->apply执行暂停

sapply(数据、级别)

numdata谢谢@Allan和@quickreaction。数据在Rdata文件中给出。因此,当我打开它时,它会加载到我的全局环境中。它不满足“标记文档是独立的自引用代码环境”的条件

我通过包括

write.csv(data,'data.csv')
data<-read.csv('data.csv')
write.csv(数据,'data.csv')

dataI可以通过启动新的R会话并运行
lappy(data,as.numeric)
来复制此问题,因为
data
是一个内置函数。错误消息表明,在调用此行之前,Rmd脚本中没有创建名为
data
的对象。我的猜测是,它在您的控制台中工作,因为您在您以前创建的全局环境中有一个名为
data
的对象。正如@Allan所说,
data
对象是有问题的。如果要缝合R标记文件,应该设想标记文档是一个独立的自引用代码环境。例如,我永远不会在控制台中运行分析,创建一些我想要可视化的对象,然后在Rmd的代码块中围绕它们放置一系列
print()
语句。将整个分析构建到Rmd中,即使您正在顶部代码块中运行
源(“../myanalysis.R”)
。不要对数据对象使用
data
true
if
等标签。我使用的数据来自Rdata文件。有办法解决这个问题吗?我必须先将Rdata转换为csv文件吗?
write.csv(data,'data.csv')
data<-read.csv('data.csv')