如何为含空白首列的大数据框按顺序重命名列(1-21941)?
解决CSV列重命名为序号的方案
方法1:Base R 直接修改列名(最简便)
这种方法无需额外包,适配列数极多的场景:
- 如果第一列作为普通列保留:
data2 <- read.csv(file_name) colnames(data2) <- 1:ncol(data2)
- 如果第一列是行名,读取时直接设为行名再重命名其余列:
data2 <- read.csv(file_name, row.names = 1) colnames(data2) <- 1:ncol(data2)
方法2:使用dplyr的rename_with函数
如果你习惯用dplyr,可以通过匿名函数生成序号:
- 重命名所有列:
library(dplyr) data2 <- read.csv(file_name) data2 <- data2 %>% rename_with(~ as.character(1:ncol(data2)))
- 仅重命名第二列及以后(排除第一列):
data2 <- data2 %>% rename_with(~ as.character(1:(ncol(data2)-1)), .cols = -1)
说明
rename_with的第一个参数是生成新列名的匿名函数,~ as.character(1:ncol(data2))会自动生成与列数匹配的序号字符串向量。.cols = -1表示排除第一列,只处理剩余列,此时序号范围对应调整为1:(ncol(data2)-1)。
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

