如何使用 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
,因为您希望进行一次替换。
我正在尝试重命名丰度矩阵中的分类群注释以创建气泡图(原始数据 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
,因为您希望进行一次替换。