R:编辑列以便合并

时间:2017-01-18 17:48:54

标签: r string merge

我有两个数据集我需要使用R与一个公共列合并,但是需要将它们更改为显示相同的格式,但无法找到如何。 一栏看起来像这样

BT0_3.5
BTO_4.5
BT0_5.5

而另一个看起来像这样:

numpy

我只需要让它们匹配,这样我就可以合并它们(数值是标签,所以额外的0.5只是以不同的方式记录)

2 个答案:

答案 0 :(得分:2)

如果您的问题是如何将' - '替换为'_',那么它将是: var = sub(pattern =' - ',replacement ='_',x = var)

如果你想放弃'.5',那么: var = sub(pattern ='。5',replacement ='',x = var) 只会做这个工作。

函数'sub'和'gsub'之间的区别是'gsub'替换满足模式的所有内容,而'sub'仅替换左边的第一个匹配。如果您不熟悉数据,我建议您使用sub,并尝试'grep'以在更换后找到改进。

答案 1 :(得分:0)

两列中的所有值都以BT0开头吗?在第二列中,其中一个值的类型为BTO。那是一个错字吗?假设两列的值都以BT0开头,请确保两列都是字符(而不是因子)模式,然后:

df$var = gsub("_([0-9])\\..$", "-\\1", df$var) 

其中df$var是您要更改的数据框和列。这将在带有连字符的数字之前替换下划线,并删除一个句点,后跟字符串末尾的任何字符。