赋值运算符=和<-R 之间有什么区别?
我知道运营商略有不同,如本例所示
x <- y <- 5
x = y = 5
x = y <- 5
x <- y = 5
# Error in (x <- y) = 5 : could not find function "<-<-"
Run Code Online (Sandbox Code Playgroud)
但这是唯一的区别吗?
> within( list(a="a",b="b"), c="c" )
Error in eval(expr, envir, enclos) : argument is missing, with no default
> within( list(a="a",b="b"), c<-"c" )
$a
[1] "a"
$b
[1] "b"
$c
[1] "c"
Run Code Online (Sandbox Code Playgroud)
我不确定为什么这两个不应该是等价的.似乎该=版本被解释为一个名为c内部的参数因为....有没有办法禁用这种行为?我试过了,
within( list(a="a",b="b"), `c`="c" )
Run Code Online (Sandbox Code Playgroud)
但那也失败了.
可能重复:
R中的赋值运算符:'='和'< - '
我想知道为什么使用=和<-分配a时有区别dataframe.
案例a:使用 =
set.seed(100);a <- data.frame(a1=rnorm(10),a2=sample(c(1,0),10,replace=TRUE))
Run Code Online (Sandbox Code Playgroud)
案例b:使用 <-
set.seed(100);b <- data.frame(b1 <- rnorm(10),b2 <- sample(c(1,0),10,replace=TRUE))
Run Code Online (Sandbox Code Playgroud)
为什么会有以下区别?为什么第二种方法没有保留变量/列名?
> a
a1 a2
1 -0.50219235 0
2 0.13153117 0
3 -0.07891709 1
4 0.88678481 1
5 0.11697127 0
>b
b1....rnorm.5. b2....sample.c.1..0...5..replace...TRUE.
1 -0.50219235 0
2 0.13153117 0
3 -0.07891709 1
4 0.88678481 1
5 0.11697127 0
Run Code Online (Sandbox Code Playgroud)