R 仅更改某些列的名称
我有一组数据,如下所示:R 仅更改某些列的名称,r,R,我有一组数据,如下所示: V1,V2,V3,V4,lm,Q1.1,Q1.2 "ID","Set","Name","Status","lm","First Question","Second Question" "RX0102","Default","RespondentName1",0,,1,1 "RT1832","Default","RespondentName2",0,,1,1 我希望获取所有名称以V开头的列,并使用第一行中的值重命名它们。我知道如何获取名称(colnames(f[,c(g
V1,V2,V3,V4,lm,Q1.1,Q1.2
"ID","Set","Name","Status","lm","First Question","Second Question"
"RX0102","Default","RespondentName1",0,,1,1
"RT1832","Default","RespondentName2",0,,1,1
我希望获取所有名称以V开头的列,并使用第一行中的值重命名它们。我知道如何获取名称(colnames(f[,c(grep(^V[0-9]*$,names(f))))))
,它将返回“V1”、“V2”、“V3”、“V4”
)甚至返回列的位置(grep(^V[0-9]*$”,names(f))
,并且我知道如何从第一行(f[1,c(grep(^V>)获取相应的值[0-9]*$”,names(f))]
)。我似乎无法将第一行值分配给名称。我尝试了以下方法:
colnames(f[,c(grep("^V[0-9]*$",names(f)))]) <- f[1,c(grep("^V[0-9]*$", names(f)))]
colnames(f[,c(grep(^V[0-9]*$,names(f))))]您可以这样做:
colnames(f)[grep("^V[0-9]*$",names(f))] <- f[1,c(grep("^V[0-9]*$", names(f)))]
colnames(f)[grep(^V[0-9]*$”,names(f))]如果您知道列的顺序V
,这也应该有效
V1 <- c('Column Hey','1e','2e','3e','4e','5e')
V2 <- c('Column Why', 'a', 'b','c', 'd', 'e')
X <- data.frame(V1,V2,stringsAsFactors =F)
colnames(X)[1:2] <- as.character(X[1,1:2])
X<-X[2:nrow(X),]
V1尝试指示在将结尾处的x
更改为f
后,这就成功了!我显然是把事情复杂化了。谢谢你的帮助。哦,对不起,你说得对,结尾处应该是f
。很高兴它还是有帮助的。别忘了删除第一行:f这是一个微妙的变化。这很有意义现在我看到了,谢谢。