gpt4 book ai didi

r - data.frame 中的 <- 和 = 有什么区别?

转载 作者:行者123 更新时间:2023-12-02 05:33:45 24 4
gpt4 key购买 nike

在 data.frame 中,<-可以得到非常奇怪的输出,这是什么原因?

x<-data.frame(name<-c("n1","n2"),age<-c(5,6))
y<-data.frame(name=c("n1","n2"),age=c(5,6))
> x
name....c..n1....n2.. age....c.5..6.
1 n1 5
2 n2 6
> y
name age
1 n1 5
2 n2 6

data.frame 中 <- 和 = 的区别是什么意思?

最佳答案

不,这并不奇怪。您可以使用已命名未命名 对象调用 data.frame 的构造函数。

最初我认为 data.frame 是一个列表,并使用 help(list) 来解释 data.frame 的行为。即使哲学是相同的(命名和未命名参数)这是一个错误,答案是在 data.frame 的帮助下

我从 ?data.frame 开始讨论参数的名称

If the arguments are all named and simple objects (not lists, matrices of data frames) then the argument names give the column names. For an unnamed simple argument, a deparsed version of the argument is used as the name (with an enclosing I(...) removed).

所以

x<-data.frame(name<-c("n1","n2"),age<-c(5,6))

这相当于:

 x <- data.frame(c("n1","n2"),c(5,6))   ## unnamed objects The functions return dotted pair list 
name<-c("n1","n2")
age<-c(5,6)

然后对于 y

y<-data.frame(name=c("n1","n2"),age=c(5,6))  ## named objects functions return a list 

但请注意,这仅解释了简单对象参数的命名过程。命名比加点更复杂。例如,我发现这两个语句是等价的(使用 check.names=T 或 F)非常令人惊讶:

         a <- data.frame(y <- list(x=1)) 
a <- data.frame(y = list(x=1))

关于r - data.frame 中的 <- 和 = 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14089066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com