r - 删除列名中的字符

标签 r rename

例如,我有以下数据

Ind var1_1 var2_2 var3_1 var4_2.......var100_1
 1   0      0       2      1             0
 2   2      0       1      0             2

我想重命名后面没有两个字符的列,如下所示
Ind var1 var2 var3 var4.......var100
 1   0     0    2    1           0
 2   2     0    1    0           2

最佳答案

我们可以使用 sub .我们匹配模式 _后跟一位或多位数字( \\d+ )到字符串的末尾( $ )并替换为 '' .

names(df) <- sub('_\\d+$', '', names(df))

或者正如@David Arenburg 提到的,它可以是 .* 之后的任何字符( _ )中的一个或多个(这将匹配诸如 var1_1var1_d3533 等模式)
names(df) sub("_.*", "", df)

或者我们使用 paste (@jogo 的评论)
names(df) <- c("Ind", paste0("var", 1:100))

关于r - 删除列名中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34615460/

相关文章:

r - 在 R 中创建 SpatialPointsDataFrame 时如何保持缺失坐标

linux - 获取 Perl 重命名实用程序而不是内置重命名

重命名排除特定列集的列

linux - 更改嵌套文件夹中的文件名

delphi - 如何重命名exe文件

r - 在 R 中动态地对调查设计对象进行子集化

r - 按组添加新的总和列

R data.table 从列表输出中分配多列

r - 使用带有 $ 的逻辑向量对数据帧进行子集

linux - 如何在 Linux 中将所有包含下划线的文件和文件夹重命名为连字符