如何使用 gsub() 重命名 df 中的变量?

How may I rename variables in a df using gsub()?

我正在尝试重命名丰度矩阵中的分类群注释以创建气泡图(原始数据 16S MiSeq)。我的数据框“data_melt”如下所示:

我希望将“变量”列中的分类单元 ID 重命名为姓氏(class 级别)。例如:“D_0__Archaea.D_1__Altiarchaeota.D_2__Altiarchaeia”到“Altiarchaeia”.

我试过了

data_melt$variable <- gsub("D_0__[A-z].D_1__[A-z].D_2__", "", data_melt$variable)

无济于事。我在其他数据集上成功使用了这行代码,但是“data_melt”没有任何变化。甚至没有任何 warning/error 消息。有什么想法吗?

提前谢谢你,

J

您可以通过将 [A-z]. 替换为 [A-Za-z]+\.:

来修复您的方法
data_melt$variable <- sub("D_0__[A-Za-z]+\.D_1__[A-Za-z]+\D_2__", "", data_melt$variable)

[A-z] . 匹配任何字符,而您想匹配文字点。当点被转义时,它只匹配一个文字点。

但是,您可以通过删除包括最后一个下划线在内的所有内容来解决问题:

sub(".*_", "", data_melt$variable)

请注意,您可以使用 sub,因为您希望进行一次替换。