在data.frame指定列名改变空格“”在data.frame指定列名改变空格“”(Specify

2019-05-12 04:01发布

比方说,我有一个data.frame,就像这样:

x <- c(1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10)
df <- data.frame("Label 1"=x,"Label 2"=rnorm(100))

头(DF,3)

收益:

  Label.1    Label.2
1       1  1.9825458
2       2 -0.4515584
3       3  0.6397516

我如何获得R若要停止自动地在列名称的更换周期的空间? 即,“标记1”,而不是“Label.1”。

Answer 1:

你不知道。

随着空间你想要的格式将无法满足该来的时候,你用来播放标识符要求df$column.1 -这可能不与空间应付。 所以看到make.names()函数的详细信息或一个例子:

> make.names(c("Foo Bar", "tic tac"))
[1] "Foo.Bar" "tic.tac"  
>                                              


Answer 2:

你可以设置check.names = FALSEdata.frame (以及在read.table ):

df <- data.frame("Label 1" = 1:3, "Label 2" = rnorm(3), check.names = FALSE)

收益:

  Label 1    Label 2
1       1  0.2013347
2       2  1.8823111
3       3 -0.5233811

?data.frame

check.names
逻辑。 如果TRUE那么在数据帧中的变量的名称进行检查,以确保它们在语法上有效的变量名,而不是重复。 如果必要的话,他们是(按调整make.names ),使它们。


?make.names

语法上有效的名称由字母,数字和点或下划线字符,以字母或后面没有数点开始。 名称,如“.2way”是无效的,也不是保留字。

所有无效字符被转换为“ ” .


另外,如果你需要使用到子集的变量与“无效”的名字$ ,你可以使用反引号` 。 例如:

df$`Label 1`


Answer 3:

您可以更改现有的数据帧名称包含空格使用IE浏览你的榜样

x <- c(1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10,1:10)
df <- data.frame("Label 1"=x,"Label 2"=rnorm(100))
colnames(df) <- c("Label 1", "Label 2")
head(df, 3)

回报

  Label 1    Label 2
1       1  0.2013347
2       2  1.8823111
3       3 -0.5233811

你仍然可以访问使用$操作列,您只需要使用双引号如

df$"Label 2"[1:3]

回报

[1]  0.2013347  1.8823111 -0.5233811

它在data.frame创作似乎相当不一致的,以我为自动转换的列名,但不待办事项栏名称变更期间相同,但多数民众赞成[R是如何工作的时刻。



Answer 4:

names(df)<-c('Label 1','Label 2)


文章来源: Specifying column names in a data.frame changes spaces to “.”