【发布时间】:2017-12-01 12:56:07
【问题描述】:
从以下链接中找到的问题开始。
How to test if the first three characters in a string are letters or numbers in r?
如何包含它以检查第 4 个字符是否也是数字?例如,我的数据框示例如下。
ID X
1 MJF34
2 GA249D
3 DEW235R
4 4SDFR3
5 DAS3
6 BHFS7
同样,我希望字符串中的前三个字符是字母,我还希望第四个字符是 0-9 之间的任何数字。如果达到给定的规则,那么我希望它将 X 变量的前三个字母粘贴到新列中。如果不是,我希望它说“FR”。因此最终的数据集如下。
ID X Y
1 MJF34 MJF
2 GA249D FR
3 DEW235R DEW
4 4SDFR3 FR
5 DAS3 DAS
6 BHFS7 FR
到目前为止,我检查前三个字母的是:
sub_string<-substr(df$X, 1, 3)
df$Y<-ifelse(grepl('[0-9]',sub_string), "FR", sub_string)
我尝试将其扩展为第 4 个,但似乎不起作用。
sub_number<-substr(df$X, 4, 4)
df$Y<-ifelse(grepl('[0-9]',sub_string) && !grepl('[0-9]',sub_number), "FR", sub_string)
我可能在做一些明显错误但似乎无法弄清楚的事情? 提前致谢
【问题讨论】:
标签: r if-statement