子集和过滤器未给出正确答案

时间:2017-04-03 05:24:15

标签: r

我有以下数据集并使用subsetfilter来细分数据:

KL <- read.table(text = "
ID  C1
A   597.69
B   239.64
C   601.3
D   4052.6
E   73.73
F   74.06
G   124
H   0
I   0
J   0
K   0
L   122.45
M   152.88
N   123.32
O   354.12",
stringsAsFactors = FALSE,
header = TRUE)

str(KL)
Classes ‘data.table’ and 'data.frame':  15 obs. of  2 variables:
 $ ID: chr  "A" "B" "C" "D" ...
 $ C1: num  597.7 239.6 601.3 4052.6 73.7 ...

当我应用子集条件时

cl4  = subset(KL, C1 > "300.00")

输出是:

ID C1
A  597.69
C  601.30
D  4052.60
E  73.73
F  74.06
O  354.12

为什么它仍然显示数字少于300?

我也试过filter,但输出相同。

1 个答案:

答案 0 :(得分:1)

由于您的列C1是数字,因此您不应使用引号。试试这个:

 subset(KL, C1 > 300)

   ID      C1
1   A  597.69
3   C  601.30
4   D 4052.60
15  O  354.12

但请注意,您应谨慎使用subset() - 这并不总能达到您的目的。

最好使用[进行子集化:

KL[KL$C1 > 300, ]
   ID      C1
1   A  597.69
3   C  601.30
4   D 4052.60
15  O  354.12