R 从多个列名中删除第一个字符

R 从多个列名中删除第一个字符,r,dataframe,substring,rename,R,Dataframe,Substring,Rename,我的问题是关于同时重命名多个列名 我有一个名为“growth”的数据框架,有46列 列2:46都命名为日期,但所有日期前面都有一个X,例如“X1981” 当然,我想从所有列名中删除X 我无法理解为什么以下情况不起作用: colnames(growth[ ,2:length(growth)]) <- substring(colnames(growth[ ,2:length(growth)]),2) colnames(growth[,2:length(growth)])没关系,我把指令改成了

我的问题是关于同时重命名多个列名

我有一个名为“growth”的数据框架,有46列

列2:46都命名为日期,但所有日期前面都有一个X,例如“X1981”

当然,我想从所有列名中删除X

我无法理解为什么以下情况不起作用:

colnames(growth[ ,2:length(growth)]) <- substring(colnames(growth[ ,2:length(growth)]),2)

colnames(growth[,2:length(growth)])没关系,我把指令改成了

names(growth)[2:46] <- substring(names(growth)[2:46],2)

names(growth)[2:46]可能与您相关,实际上应该将您的宽数据重新格式化为长格式,在相邻的列中有一个年份列和值。这样可以更好地扩展,计算也更容易。名称之间可能存在重复的差异(df[1])很好。请注意,如果growth有46列,则可以用更简洁的
-1
替换
2:46
。这可能是因为执行
colnames(growth[,2:46])