仅保留有条件的特定条目

时间:2019-04-18 19:49:43

标签: r

我有一个看起来像这样的数据集:

set ID   v1        
A1  222  1.86543   
B1  222  2.98764   
A1  234  3.76543   
B1  234  4.87654  
A1  235  1.98766  
B1  235  6.98765   
A1  21   1.98764   
B1  21   7.7654    

我正在尝试仅保留A1和B1的v1值之间的差异大于2的那些条目。我是R的初学者,并且没有尝试在此处显示的可靠代码。有人可以帮我吗?

谢谢。

对于此处发生的更改表示歉意。我在这里错误地显示了数据。我已经编辑了。

2 个答案:

答案 0 :(得分:1)

看起来已经有人知道了,但是如果在两个方向上的差值都是2,也可以使用abs函数。

library(tidyverse)

df <- tibble(
  set = c("A1", "B1", "A1", "B1"),
  ID = c(222, 222, 234, 234),
  v1 = c(1.86543, 2.98764, 3.76543, 4.87654),
  v2 = c(3.98765, 2.98764, 2.87643, 1.87653)
)

df %>% 
  filter(abs(v1 - v2) > 2)

答案 1 :(得分:0)

鉴于新的数据格式,您可以使用spread函数

require(tidyverse) 

df %>% 
  spread(set, v1) %>% 
  filter(abs(A1-B1) > 2)

结果:

   ID      A1      B1
1  21 1.98764 7.76540
2 235 1.98766 6.98765

数据:

df <- read.table(text = "set ID   v1        
A1  222  1.86543   
           B1  222  2.98764   
           A1  234  3.76543   
           B1  234  4.87654  
           A1  235  1.98766  
           B1  235  6.98765   
           A1  21   1.98764   
           B1  21   7.7654 
           ", header = TRUE)