如果前几列的名称不在范围内,如何更改它们的名称并保留其余列的名称?
How do I change the names of the first few columns and leave the remaining as they were if they are not included in range?
例如,我有一个如下所示的数据框
ID| first name| last name| DOB
1 John Smith 1/4/1999
2 Fred Johnson 1/2/1987
我有一个向量是
c("Identification","First","Last")
然后我做
names(df2)<-Vector[1:3]
这几乎给了我想要的但不准确。
Identification|First|Last|
1 John Smith 1/4/1999
2 Fred Johnson 1/2/1987
我希望 DOB 不会丢失
Identification|First|Last|DOB
1 John Smith 1/4/1999
2 Fred Johnson 1/2/1987
有没有办法动态地做到这一点。没有你决定在最后添加 DOB 的地方。我想要一个脚本,它只会根据选择更改前三列,并保留其余列的名称,而不是将它们变成空白。
colnames(df2) = c(Vector,colnames(df2)[4])
其中 4 是您要保留名称的列的索引。
您可以使用
names(df2)[1:3] <- Vector
如果您想将 x
的第一个元素更改为 5
,您可以使用 x[1] <- 5
。如果您想将 x
的前几个元素更改为 5
、7
,您可以使用 x[1:2] <- c(5, 7)
。分配给 names(df)
的工作方式相同。
如果你有超过4个名字,你可以动态重命名它们:
vector <- c("Identification","First","Last")
names(df) <- c(vector, names(df)[(length(vector)+1):ncol(df)])
数据
df <- data.frame(ID = c(1,2),
"first name" = c("John", "Fred"),
"last name" = c("Smith", "Johnson"),
DOB = c("1/4/1999", "1/2/1987"))
例如,我有一个如下所示的数据框
ID| first name| last name| DOB
1 John Smith 1/4/1999
2 Fred Johnson 1/2/1987
我有一个向量是
c("Identification","First","Last")
然后我做
names(df2)<-Vector[1:3]
这几乎给了我想要的但不准确。
Identification|First|Last|
1 John Smith 1/4/1999
2 Fred Johnson 1/2/1987
我希望 DOB 不会丢失
Identification|First|Last|DOB
1 John Smith 1/4/1999
2 Fred Johnson 1/2/1987
有没有办法动态地做到这一点。没有你决定在最后添加 DOB 的地方。我想要一个脚本,它只会根据选择更改前三列,并保留其余列的名称,而不是将它们变成空白。
colnames(df2) = c(Vector,colnames(df2)[4])
其中 4 是您要保留名称的列的索引。
您可以使用
names(df2)[1:3] <- Vector
如果您想将 x
的第一个元素更改为 5
,您可以使用 x[1] <- 5
。如果您想将 x
的前几个元素更改为 5
、7
,您可以使用 x[1:2] <- c(5, 7)
。分配给 names(df)
的工作方式相同。
如果你有超过4个名字,你可以动态重命名它们:
vector <- c("Identification","First","Last")
names(df) <- c(vector, names(df)[(length(vector)+1):ncol(df)])
数据
df <- data.frame(ID = c(1,2),
"first name" = c("John", "Fred"),
"last name" = c("Smith", "Johnson"),
DOB = c("1/4/1999", "1/2/1987"))