我目前在 Coursera 上做 R 类,任务要求编写一个特定的函数,将代码保存到一个名为 getmonitor.R 的文件并运行测试脚本来评估结果。
我能够编写该函数,并且它似乎在输入/输出方面按照预期执行。但是当我试图执行测试脚本时。我收到以下错误消息:
Error in source("getmonitor.R", local = TRUE) :
getmonitor.R:11:1: unexpected '}'
10: }
11: }
^
In addition: Warning messages:
1: In grepl("\n", lines, fixed = TRUE) :
input string 19 is invalid in this locale
2: In grepl("\n", lines, fixed = TRUE) :
input string 20 is invalid in this locale
我尝试在 coursera 社区上提问,但无法得到答案,我也无法真正发布我的代码。我希望我能在这里找到一些帮助。下面我将提供重现的步骤。
需要创建的函数定义如下:“编写一个名为‘getmonitor’的函数,它接受三个参数:‘id’、‘directory’和‘summarize’。给定一个监视器 ID 号,‘getmonitor’读取该监视器的微粒从“directory”参数中指定的目录中获取数据并返回包含该监视器数据的数据帧。如果“summarize = TRUE”,则“getmonitor”使用“summary”函数生成数据帧的摘要并将其打印到控制台。”
这是我的解决方案:
> getmonitor <- function(id, directory, summarize = FALSE) {
+ filename <- paste("/Users/siarhei/desktop/",directory,"/",sprintf("%03s", as.character(id)),".csv", sep="")
+ data <- read.csv(filename)
+ if (summarize == TRUE) {
+ print(summary(data))
+ }
+ }
如果我运行 getmonitor(1,'specdata',TRUE),我会得到预期的输出。
save(getmonitor, file="getmonitor.R")
然后根据课程说明运行命令将文件保存到我的 wd。之后我运行测试脚本,即:
source("http://spark-public.s3.amazonaws.com/compdata/scripts/getmonitor-test.R")
getmonitor.testscript()
这里应该发生的是 R 会生成 2 个输出文件,我可以在线提交。然而,到目前为止我所能得到的只是上面的一个错误。由于该功能正常工作,因此似乎只是读取文件时出现了一些错误,但我无法弄清楚。
非常感谢这里的任何提示。如果有任何机会上网在聊天或环聊中解决这个问题,我会非常酷和乐于助人!
谢谢!