不,這並不奇怪。您調用的數據框架的構造函數名爲和未命名的對象。
本來我認爲data.frame是一個列表,並使用幫助(列表)來解釋data.frame的行爲。即使是哲學是相同的(命名和未命名的論點),這是一個錯誤,答案是在data.frame
from?data.frame我拿這部分我們談論的論點名稱
如果參數是所有命名的簡單對象(不是列表, 數據框的矩陣),那麼參數名稱會給出 列的名稱。對於未命名的簡單參數,將使用 參數的解析版本作爲名稱(刪除了封閉的I(...))。
所以
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
但是請注意,這隻能解釋爲簡單對象參數的命名方法。命名比添加點更復雜。 例如,我發現非常驚人的,論文2條語句是等價的(與check.names = T或F):
a <- data.frame(y <- list(x=1))
a <- data.frame(y = list(x=1))
也可以看看http://stackoverflow.com/questions/11676179/different-behavior-in-using-versus-operator-while- assign-a-dataframe and http://stackoverflow.com/questions/1741820/assignment-operators-in-r-and –