Select rows of a data.frame that contain only numbers in a certain column

若如初见. 提交于 2019-12-01 05:57:47

问题


How to select only the rows that contain a number in column b.

a <- c(1,5,3,1,-8,6,-1)
b <- c(4,-2,1,0,"c",2,"DX")

df <- data.frame(a,b)
df

#    a  b
# 1  1  4
# 2  5 -2
# 3  3  1
# 4  1  0
# 5 -8  c
# 6  6  2
# 7 -1  DX

The output should look like this:

#    a  b
# 1  1  4
# 2  5 -2
# 3  3  1
# 4  1  0
# 5  6  2

回答1:


You could use grep:

df[grep("[[:digit:]]", df$b), ]
#  a  b
#1 1  4
#2 5 -2
#3 3  1
#4 1  0
#6 6  2



回答2:


This should be faster (it doesn't use regex)

df[!is.na(as.numeric(df$b)), ]


来源:https://stackoverflow.com/questions/23032925/select-rows-of-a-data-frame-that-contain-only-numbers-in-a-certain-column

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!