2016-10-04 68 views
1

我想从列中提取字符串,如果其长度在6-10之间。这些字符串由空格分隔。R - 根据列的长度提取字符串

例子:

Column A 

" 3 89 -90/ 900407-2" 
" 3 9 -90/ 900407-1" 
" 89 -9011/ 800408" 

输出应该是:

Output column 

    900407-2 
    900407-1 
    800408 

感谢您的帮助!

+0

没有足够的逻辑在这里给一个简单的规则,用于提取最终的字符串。 –

回答

0

使用此:

A <- c(" 3 89 -90/ 900407-2", 
     " 3 9 -90/ 900407-1", 
     " 89 -9011/ 800408") 
gsub(".*/.*([0-9].*?)", "\\1", A) 
#[1] "900407-2" "900407-1" "800408" 
+0

@ sandipan-此解决方案工作。谢谢! – ksp585

0

尝试使用以下方法:

x <- gsub(".* (.*)", "\\1", x) 

如果你想限制为字符串与6至10个字符,减去连字符,你可以使用:

lens <- nchar(gsub("-", "", x)) 
x <- x[lens >= 6 & lens <= 10]