微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

选择其中相减的绝对值小于指定值的行 数据

如何解决选择其中相减的绝对值小于指定值的行 数据

假设我有这个数据框:

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,20L,20L)),class = "data.frame",row.names = c(NA,-9L))

并且我想选择其中行相减的绝对值大于或等于2(基于列X1和X2)的行。

例如,第4行的值是4-1,即3,应选择该值。

第9行的值为10-20,即-10。绝对值为10,应选择。

在这种情况下,它将是第3、4、6、7、8和9行

我尝试过:

dataset2 = dataset[,abs(dataset- c(dataset[,2])) > 2] 

但是我得到一个错误

操作:

abs(dataset- c(dataset[,2])) > 2

是否向我提供总和大于2的行,但结果仅适用于我的第二列,并且选择不正确

解决方法

我们可以得到'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,20L,20L)),class = "data.frame",row.names = c(NA,-9L))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。