簡體   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