如何解决为什么R Studio中的控制台仅允许部分命令?
我试图提高我的R知识,但是RStudio感到非常沮丧:我粘贴了我的工作,或者重新制定了操作方法,但是控制台抱怨太多; Ctrl-Enter也只能在文本编辑器中使用。
经过数小时的调试,我不得不逐段放置一个命令,然后通过互联网随机搜索说我不应该在控制台中编写代码。我不是在编码,而是在上课和粘贴示例;但可以在控制台中进行编码。现在,我必须重新考虑整个策略,并在R中记笔记。有点让我想起了Applescript或javascript编程,您只能在控制台中看到这些代码,而只能在控制台中进行调试。但应该以这种方式贴上标签。。。我已经不停地摆弄了一年。我希望我可以将键盘快捷键/格式粘贴到控制台中,以测试代码:例如\或+等。
注意:我必须定义一些变量并启用
Library(dslabs)
Library(dplyr) gives group_by,%>%
Library(purrr) gives map_dbl
accuracy <- map_dbl(cutoff,function(x){
y_hat <- ifelse(train_set$height > x,"Male","Female") %>%
factor(levels = levels(test_set$identifier))
mean(y_hat == train_set$identifier)})
控制台说:“错误:“准确性中的意外符号 x,“ Male”,“ Female”)%>%factor(levels = level(test_set $ identifier))的平均值”
结果>“控制台”必须在逻辑空格/中断或{之前运行第一部分。然后输入“ +”并接受最后的参数和}或
编辑器工作正常。
https://www.dummies.com的部分答案:
“要准备要获取源代码的脚本,请先在编辑器窗口中编写整个脚本。例如,在RStudio中,编辑器窗口位于屏幕的左上角。每当在编辑器中按Enter键窗口,光标将移至下一行,就像在任何文本编辑器中一样”(de Vries和Meys,J.(nd)编程:R:如何在R. Dummies中编写脚本:Wiley品牌。{{3} })。
为什么控制台不会告诉您尝试编辑器窗口,允许自定义,或者只是在不将其分成多个步骤的情况下工作,例如控制台的漂亮的library()?
解决方法
RStudio非常有意。它希望您在称为“编辑器”的左上方窗口中编写源代码块。除了tidyverse或dplyr提供重定向功能外,还会发生错误,因为%>%用于在多行代码之间定向输出;并且无法从控制台轻松地完成多行。
是的,控制台可以接受代码,但不能识别多个功能。表示是否看到)}或%>%表示函数结束。您需要换行。输入不超过%>%的代码,然后按Enter。
示例:
height %>% #enter
控制台将添加+本身。
保持编码。 在最后一个)之后,例如in factor();控制台将返回到新行,“均值”将自行运行。
请记住:%>%指向代码的下一行。因此,RStudio的控制台需要您逐段粘贴代码,并在每个%>%
之后物理上按“输入”或“返回”讲师可能不会在上下文中将代码提供给您,这可能会令人沮丧,因为一部分代码将取决于之前定义的功能才能起作用。查找有关R的不同版本的讲义;或讲师进行抽样和讲义以获得完整的背景信息;如果没有请教员;我的讲师代码是正确的,只是没有没有提供之前的花絮。一旦获得这些结果,结果是相同的和/或更准确的。
总结:
要简化编码,请在编辑器中构建示例,如下所示:
使用“文件”>“新建文件”>“ R Markdown ...”启动一个新的RMarkdown文档并命名。
这将打开一个新文档,其中包含作者信息和简单的howto示例作为可运行的代码块
开始做笔记,然后开始新的一行,然后键入三个```(在〜键上称为反勾)。
让编辑器通过输入```{r,include = TRUE}
来抵消它```{r,include=TRUE}
cutoff <- seq(61,70)
accuracy <- map_dbl(cutoff,function(x){
y_hat <- ifelse(train_set$height > x,"Male","Female") %>%
factor(levels = levels(test_set$identifier))
mean(y_hat == train_set$identifier)})
```
现在,您有一块可行的源代码。您可以通过单击绿色的播放按钮“运行当前块”在控制台中运行它,include = TRUE告诉它在代码下绘制表格,以便您自己查看它们。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。