【发布时间】:2017-09-25 09:34:08
【问题描述】:
我有一个带有变量名称的数据集,例如 FamId00 和 ISCO8899,我想编写一个命令,在最后两位数字之前插入一个下划线,代表年份。最好的方法是什么?我已经尝试过regex,但我得到的进一步是:
gsub('.{2}$', '', varname)
这给了我:
FamId
如何添加'_' 和原来的最后两位数?另外,我在数据集中有最后两位数字没有年份的变量(即ID 和sex)。有没有办法让正则表达式不影响这些?
【问题讨论】:
-
根据数据,您甚至可能需要
sub("(?<!_)(\\d{2})$", "_\\1", varname, perl=TRUE)或sub("(^|[^_])([0-9]{2})$", "\\1_\\2", varname)。 -
我看到这被标记为重复。我要删除这个问题吗?
-
如果问题被标记为重复,您不必删除它们。这取决于你。
-
@Kenji 最好保留欺骗性问题,因为下次有人搜索时,Google 和查找帖子会更容易
-
哦,好吧,那么标记它并投反对票有什么意义呢?到时候我就把它留在身边……