Sta*_*t-R 2 r columnname dataframe
可能重复:
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)
如果你看一下?'data.frame',你会看到以下第一个参数:
"...这些参数是表单值或tag = value.组件名称是根据标记(如果存在)或deparsed参数本身创建的."
如果使用"< - "而不是"=",data.frame()是读你输入作为表达式(分配RNORM(10)a1)中,而不是作为一个值(RNORM(10))被分配给标签(a1)
小智 6
函数'='用作命名或将函数引用到特定名称的变量,< - 表示赋值函数.当R运行时,它将首先解析函数参数中的"< - "函数.然后它将变量命名为等号左边的东西或本例中的完整表达式"b1 < - rnorm(10)".最后它将解析该函数(在本例中为data.frame).
你几乎总是想在函数中使用'='.在某些情况下,您可能希望嵌套作业"< - ",但通常这会使您的代码难以阅读.
只是为了增加@Paul和@Edward之前的(非常好的)答案,这是你使用<-而不是=内部的结果data.frame().也就是说,您已经创建了两个新对象:
> b1
Error: object 'b1' not found
> b2
Error: object 'b2' not found
> set.seed(100);b <- data.frame(b1 <- rnorm(10),b2 <- sample(c(1,0),10,replace=TRUE))
>
> b1
[1] -0.50219235 0.13153117 -0.07891709 0.88678481 0.11697127 0.31863009 -0.58179068 0.71453271 -0.82525943 -0.35986213
> b2
[1] 0 0 0 0 1 1 0 0 0 1
Run Code Online (Sandbox Code Playgroud)