选择仅包含特定列中的数字的data.frame行

时间:2014-04-12 16:17:16

标签: r dataframe subset numeric

如何仅选择 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

输出应如下所示:

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

2 个答案:

答案 0 :(得分:3)

您可以使用grep

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

答案 1 :(得分:3)

这应该更快(它不使用正则表达式)

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