首页 > 解决方案 > 如何使用 gsub() 重命名 df 中的变量?

问题描述

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

在此处输入图像描述

而且我希望将“变量”列中的分类群 ID 重命名为简单的姓氏(类级别)。例如:“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”没有变化。甚至没有任何警告/错误消息。有任何想法吗?

先感谢您,

Ĵ

标签: gsub

解决方案


您可以通过替换来修复您的[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您希望更换的产品。


推荐阅读