1

我正在尝试使用 scan(dec=",") 命令从 Excel 导入(复制和粘贴)一些数据,逗号作为小数点,但是在编译这个块时我遇到了 knitr 的问题:

<<>>=
conc<-scan(dec=",")
9,562445749
37,66119516
72,9103195

@

我收到此错误:第 22 行:意外的“,”

谢谢你的帮助

4

2 回答 2

2

在这种情况下scan(),需要您以交互方式运行它(例如,它等待空行终止输入),而knitr/Sweave以非交互方式运行 R 代码。一般来说,你应该避免需要交互的代码;换句话说,您应该保证代码可以在没有人工交互的情况下执行。例如,无论环境如何,它都会自行运行:

conc <- scan(dec=",", text='9,562445749
37,66119516
72,9103195
')

为了可重复的研究,避免涉及人工干预的代码尤其重要,因为干预意味着结果不能由代码本身确定(取决于每次运行的人工输入)。

于 2012-06-30T02:11:01.180 回答
0

尝试删除最后一行和@. 这是 Sweave 的问题,所以也许这也是 knitr 的问题。由于扫描通常会在您输入空行时停止(并且您不想要空行),因此您需要输入要扫描的项目数。

<<>>=
conc<-scan(dec=",", n=3)
9,562445749
37,66119516
72,9103195
@
于 2012-06-29T06:21:36.730 回答