我有以下数据集,并使用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
但输出是相同的。
由于列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