问题
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