我是初学者,最近开始使用R而不是Stata,因为它具有开源性质.
我对"+"继续符号有点困惑.
这是我的数据的样子:
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
Run Code Online (Sandbox Code Playgroud)
我们来考虑四种情况:
场景1: 我注意到如果我编写以下代码块,RStudio会自动附加"+" :
attach(mtcars)
cyl.f <- factor(cyl, levels= c(4,6,8),
labels = c("4 cylinder", "6 cylinder",
"8 cylinder"))
Run Code Online (Sandbox Code Playgroud)
变为:
cyl.f <- factor(cyl, levels= c(4,6,8),
+ labels = c("4 cylinder", "6 cylinder",
+ "8 cylinder"))
Run Code Online (Sandbox Code Playgroud)
如您所见,RStudio自动附加"+"
场景2: 如果我在代码末尾添加"+",则由于某些奇怪的原因它不起作用:
cyl.f <- factor(cyl, levels= c(4,6,8), +
labels = c("4 cylinder", "6 cylinder", +
"8 cylinder"))
Run Code Online (Sandbox Code Playgroud)
这会引发错误.
场景3: 如果我在代码的开头添加"+",则由于某些奇怪的原因它不起作用:
cyl.f <- factor(cyl, levels= c(4,6,8),
+ labels = c("4 cylinder", "6 cylinder",
+ "8 cylinder"))
Run Code Online (Sandbox Code Playgroud)
这会引发错误.这是可以理解的,因为RStudio会自动添加另一个"+"继续运算符.
场景4:
windows()
ggplot(data=mtcars, aes(x=wt, y=mpg)) +
geom_point() +
labs(title="Automobile Data", x="Weight", y="Miles Per Gallon")
Run Code Online (Sandbox Code Playgroud)
如果我不添加"+",这不起作用.显然,似乎"+"是上面的"管道"操作员.
现在,挑战在于我无法谷歌搜索或搜索SO,因为搜索引擎都认为"+"是OR运算符.
当"+"是"继续"的操作员以及它是"管道"的操作员时,有人可以解释.
我很感激任何想法和详细解释.这对我来说非常困惑.
您将代码与R控制台显示的提示混淆.所述+
在后换行符控制台自动显示是指示进一步输入预计控制台提示.它不是代码的一部分.
为了说明这一点,我检查了继续提示的选项并将其更改为一个示例:
options("continue")
options(continue = "% ")
data.frame(a = 1,
b = 2)
Run Code Online (Sandbox Code Playgroud)
这在控制台中显示如下:
> options("continue")
$continue
[1] "+ "
> options(continue = "% ")
> data.frame(a = 1,
% b = 2)
a b
1 1 2
Run Code Online (Sandbox Code Playgroud)
如您所见,继续提示已从更改+
为%
.请注意,提示始终位于控制台中的相同位置.它们始终是任何输入行的第一个字符,默认情况下它们后跟一个空格字符.
当代码的一部分时,+
操作符实际上是一个函数,通常会进行算术加法,但可以为不同的行为定义方法.这就是ggplot2的作用.
PS:如果您正在使用RStudio,我希望您已经创建了一个新文件,并且正在编写一个脚本,您可以从中将代码发送到控制台(例如,按Ctrl+ Enter).一些初学者不知道如何使用RStudio并只是在控制台中写.