2017-01-18 38 views
2

我有2个数据集,我需要与使用R的公共列合并,但他们需要更改显示相同的格式,但无法找到如何。 一列看起来像这样R:编辑一个列,以便它可以合并

BT0-3 
BT0-4 
BT0-5 

而其他看起来像这样:

BT0_3.5 
BTO_4.5 
BT0_5.5 

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

回答

0

是否所有值都在BT0开头?在第二列中,其中一个值的类型为BTO。这是一个错字吗?假设两列的价值观与BT0开始,确保两个列字符(而不是因子)模式,则:

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

其中df$var是要改变数据帧和列。这将用一个连字符代替数字前的下划线,并在字符串末尾删除一个后跟任意字符的句点。

2

如果你的问题是,如何更换 ' - ' 到 '_',那么这将是: VAR =子(模式= ' - ',更换= '_',X = VAR)

如果你想删除'.5',然后: var = sub(pattern ='.5',replacement ='',x = var) 只会完成这项工作。

函数'sub'和'gsub'之间的区别是'gsub'替换符合模式的所有符号,而'sub'只替换左边的第一个匹配。如果你不太了解你的数据,我会建议使用sub,并且在更换之后尝试'grep'以找到改进。

相关问题