繁体   English   中英

R如何根据列的第一个字符删除数据框中的行

[英]R how to remove rows in a data frame based on the first character of a column

我有一个大数据框,我想根据一列的第一个字符是字母或数字从中删除某些行。 我的数据框示例如下所示:

y<-c('34TA912','JENAR','TEST','34CC515')
z<-('23.12.2015','24.12.2015','24.12.2015','25.12.2015')
abc<-data.frame(y,z)

根据上面的示例。 由于第二行和第三行的y列中的值以字母而不是数字开头,因此我想删除第二行和第三行。 Y列中写入的字符可以是任何字符,因此我可以过滤的唯一方法是在不使用任何预定义值的情况下检查第一个字符。 如果我将grep与字符一起使用,由于其他行也包含字母,因此也可以将其删除。 你能帮忙吗?

我们可以使用grep 正则表达式^表示字符串的开头。 我们使用grep在'y'列的字符串开头匹配数字元素( [0-9] )。 输出将是数字索引,我们将其用于子集“ abc”的行。

 abc[grep('^[0-9]', abc$y),]
 #        y          z
 #1 34TA912 23.12.2015
 #4 34CC515 25.12.2015

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM