选择相减绝对值小于指定值的行
Choose rows in which the absolute value of subtraction is less a specified value
假设我有这个数据框:
ID X1 X2
1 1 2
2 2 1
3 3 1
4 4 1
5 5 5
6 6 20
7 7 20
8 9 20
9 10 20
dataset <- structure(list(ID = 1:9, X1 = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 9L,
10L), X2 = c(2L, 1L, 1L, 1L, 5L, 20L, 20L, 20L, 20L)),
class = "data.frame", row.names = c(NA,
-9L))
而我想要select行相减的绝对值大于或等于2的行(基于X1和X2列)。
例如,第 4 行的值为 4-1,即 3,应 selected。
第9行值为10-20,也就是-10。绝对值为 10,应 selected。
在这种情况下,它将是第 3、4、6、7、8 和 9 行
我试过了:
dataset2 = dataset[,abs(dataset- c(dataset[,2])) > 2]
但是我得到一个错误。
操作:
abs(dataset- c(dataset[,2])) > 2
确实给我总和大于 2 的行,但结果仅适用于我的第二列并且 select 不正确
我们可以得到 'X1'、'X2' 列之间的差异,在 subset
中创建一个逻辑表达式来对行
进行子集化
subset(dataset, abs(X1 - X2) >= 2)
# ID X1 X2
#3 3 3 1
#4 4 4 1
#6 6 6 20
#7 7 7 20
#8 8 9 20
#9 9 10 20
或使用索引
subset(dataset, abs(dataset[[2]] - dataset[[3]]) >= 2)
数据
dataset <- structure(list(ID = 1:9, X1 = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 9L,
10L), X2 = c(2L, 1L, 1L, 1L, 5L, 20L, 20L, 20L, 20L)),
class = "data.frame", row.names = c(NA,
-9L))
假设我有这个数据框:
ID X1 X2
1 1 2
2 2 1
3 3 1
4 4 1
5 5 5
6 6 20
7 7 20
8 9 20
9 10 20
dataset <- structure(list(ID = 1:9, X1 = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 9L,
10L), X2 = c(2L, 1L, 1L, 1L, 5L, 20L, 20L, 20L, 20L)),
class = "data.frame", row.names = c(NA,
-9L))
而我想要select行相减的绝对值大于或等于2的行(基于X1和X2列)。
例如,第 4 行的值为 4-1,即 3,应 selected。
第9行值为10-20,也就是-10。绝对值为 10,应 selected。
在这种情况下,它将是第 3、4、6、7、8 和 9 行
我试过了:
dataset2 = dataset[,abs(dataset- c(dataset[,2])) > 2]
但是我得到一个错误。
操作:
abs(dataset- c(dataset[,2])) > 2
确实给我总和大于 2 的行,但结果仅适用于我的第二列并且 select 不正确
我们可以得到 'X1'、'X2' 列之间的差异,在 subset
中创建一个逻辑表达式来对行
subset(dataset, abs(X1 - X2) >= 2)
# ID X1 X2
#3 3 3 1
#4 4 4 1
#6 6 6 20
#7 7 7 20
#8 8 9 20
#9 9 10 20
或使用索引
subset(dataset, abs(dataset[[2]] - dataset[[3]]) >= 2)
数据
dataset <- structure(list(ID = 1:9, X1 = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 9L,
10L), X2 = c(2L, 1L, 1L, 1L, 5L, 20L, 20L, 20L, 20L)),
class = "data.frame", row.names = c(NA,
-9L))