我正在尝试使用 scan(dec=",") 命令从 Excel 导入(复制和粘贴)一些数据,逗号作为小数点,但是在编译这个块时我遇到了 knitr 的问题:
<<>>=
conc<-scan(dec=",")
9,562445749
37,66119516
72,9103195
@
我收到此错误:第 22 行:意外的“,”
谢谢你的帮助
在这种情况下scan()
,需要您以交互方式运行它(例如,它等待空行终止输入),而knitr
/Sweave
以非交互方式运行 R 代码。一般来说,你应该避免需要交互的代码;换句话说,您应该保证代码可以在没有人工交互的情况下执行。例如,无论环境如何,它都会自行运行:
conc <- scan(dec=",", text='9,562445749
37,66119516
72,9103195
')
为了可重复的研究,避免涉及人工干预的代码尤其重要,因为干预意味着结果不能由代码本身确定(取决于每次运行的人工输入)。
尝试删除最后一行和@
. 这是 Sweave 的问题,所以也许这也是 knitr 的问题。由于扫描通常会在您输入空行时停止(并且您不想要空行),因此您需要输入要扫描的项目数。
<<>>=
conc<-scan(dec=",", n=3)
9,562445749
37,66119516
72,9103195
@