我有以下数据集并使用subset
和filter
来细分数据:
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
,但输出相同。
答案 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