比方说,我有一个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”。

有帮助吗?

解决方案

您不知道。

通过你想要的格式将无法满足该来当您使用df$column.1发挥标识要求的空间 - 这可能不与空间应付。所以细节请参见make.names()功能或示例:

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

其他提示

您可以设置在check.names = FALSE data.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`

可以更改现有的数据帧名称包含使用例如空格,即

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作品的时刻。

names(df)<-c('Label 1','Label 2)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top