R语言 创建列名中带有空格的数据框架
在这篇文章中,我们将看到如何在R编程语言中创建一个列名中有空格的DataFrame。
方法1:使用check.names属性
R语言中的data.frame()方法可以用来在R语言中创建一个带有单独行和列的数据框。这个方法包含一个属性check.names,在进行这个调用时,默认设置为TRUE。这个属性的作用是验证分配给变量的名字在语法上是否有效。它还确保名称不重复。如果分配的名字有任何违反,这些名字会被make.names属性隐含地调整。
make.names属性为数据框的列分配了允许的字符串名称,其中任何无效的字符都被转换为’.’。 它将一个字符向量作为输入,并将输出作为相同长度的字符向量,其中每个单元格的值都被强制为合法名称。
语法上有效的名称由字母、数字、点或下划线字符组成,以字母或点开头,后面不跟数字。
语法
make.names(names, unique=FALSE)
例子
# declaring a data frame in R
data_frame = data.frame("Col Num 1"= c(1, 2, NA, 0),
"Col Num 2"= c( NA, NA, 3, 8),
"Col Num 3"= c("A", "V", "j", "y"))
print("Original data frame")
print(data_frame)
# printing spaces unmodified
data_frame_mod = data.frame("Col Num 1"= c(1, 2, NA, 0),
"Col Num 2"= c( NA, NA, 3, 8),
"Col Num 3"= c("A", "V", "j", "y"),
check.names=FALSE)
print("Modified data frame")
print(data_frame_mod)
输出
[1] "Original data frame"
Col.Num..1 Col.Num..2 Col.Num..3
1 1 NA A
2 2 NA V
3 NA 3 j
4 0 8 y
[1] "Modified data frame"
Col Num 1 Col Num 2 Col Num 3
1 1 NA A
2 2 NA V
3 NA 3 j
4 0 8 y
方法2:使用colnames()方法
R语言中的colnames()方法用于为R语言中的数据框架分配列名。它用于重写分配给列的现有值。它的输入是一个字符向量,由将用于列名的字符串组成,其长度相当于R语言中的列数。由于空格是字符串中的一个有效字符,因此,使用这种方法进行的列名分配在名称中接受空格。
最初,列名使用make.names属性功能进行转换,但使用字符串向量分配给数据框的colnames()时,其值会被覆盖。
例子
# declaring a data frame in R
data_frame = data.frame("Col Num 1"= c(1, 2, NA, 0),
"Col Num 2"= c( NA, NA, 3, 8),
"Col Num 3"= c("A", "V", "j", "y"))
print("Original data frame")
print(data_frame)
# defining column names using vector
colnames(data_frame) = c("Col Num 1","Col Num 2","Col Num 3")
# printing modified data frame
print("Modified data frame")
print(data_frame)
输出
[1] "Original data frame"
Col.Num..1 Col.Num..2 Col.Num..3
1 1 NA A
2 2 NA V
3 NA 3 j
4 0 8 y
[1] "Modified data frame"
Col Num 1 Col Num 2 Col Num 3
1 1 NA A
2 2 NA V
3 NA 3 j
4 0 8 y
方法3:使用names()方法
R语言中的names()方法可以作为任何R语言对象的getter或setter来使用。它把需要命名的对象作为一个参数,右边是一个矢量,其长度相当于要重新命名的对象的长度,本例中是数据框。它的用法与colnames()方法完全相似。
语法
names(df) <- c(...,..)
# declaring a data frame in R
data_frame = data.frame("Col Num 1"= c(1, 2, NA, 0),
"Col Num 2"= c( NA, NA, 3, 8),
"Col Num 3"= c("A", "V", "j", "y"))
print("Original data frame")
print(data_frame)
# defining column names using vector
names(data_frame) = c("Col Num 1","Col Num 2","Col Num 3")
# printing modified data frame
print("Modified data frame")
print(data_frame)
输出
[1] "Original data frame"
Col.Num..1 Col.Num..2 Col.Num..3
1 1 NA A
2 2 NA V
3 NA 3 j
4 0 8 y
[1] "Modified data frame"
Col Num 1 Col Num 2 Col Num 3
1 1 NA A
2 2 NA V
3 NA 3 j
4 0 8 y