任何机构都可以解释为什么以下两个数据框df1
和df2
的列名不同
df1 <- data.frame(a = 1:5, b = 11:15)
df1
# a b
# 1 1 11
# 2 2 12
# 3 3 13
# 4 4 14
# 5 5 15
df2 <- data.frame(a <- 1:5, b <- 11:15)
df2
# a....1.5 b....11.15
# 1 1 11
# 2 2 12
# 3 3 13
# 4 4 14
# 5 5 15
答案 0 :(得分:1)
如果要将列名称设为a,b,则正确的语法应为
data.frame(a=1:5, b=1:5)
声明
data.frame(a <- 1:5, b <- 1:5)
R将其解释为好像没有列名,因此它会将整个表达式视为&lt; - 1:5&#39;作为第一个列名称,但有2个空格和3个非法字符&#39;&lt;&#39;&#39; - &#39;, &#39;:&#39;列名称中不允许使用,因此每个列都会更改为字符&#39;。&#39;因此您可以获得整个&#39; a .... 1.5&#39;作为第一列名称,第二列也是如此。
答案 1 :(得分:-1)
<-
运算符不仅可以分配对象,还可以在父环境中创建它们,而不像=
运算符
稍微重命名列:
df1 <- data.frame(a1 = 1:5, b1 = 11:15)
df1
# a1 b1
# 1 1 11
# 2 2 12
# 3 3 13
# 4 4 14
# 5 5 15
#The objects are only created in the dataframee but not in environment
# > exists(x = "a1")
#[1] FALSE
#> exists(x = "b1")
#[1] FALSE
#The objects are not only in created in the dataframe as well as in the environment
df2 <- data.frame(a2 <- 1:5, b2 <- 11:15)
df2
# a2....1.5 b2....11.15
# 1 1 11
# 2 2 12
# 3 3 13
# 4 4 14
# 5 5 15
# > exists(x = "a2")
#[1] TRUE
#> exists(x = "b2")
#[1] TRUE