R如何根据列

时间:2016-02-28 16:04:27

标签: r string dataframe

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

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和一个字符,因为其他行也包含字母,我也可以删除它们。你能帮忙吗?

1 个答案:

答案 0 :(得分:2)

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

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