查找包含基于另一列的值的列

时间:2019-02-22 15:25:27

标签: r

我有以下数据框:

Step    1   2   3
1       5   10  6
2       5   11  5
3       5   13  9
4       5   15  10
5       13  18  10
6       15  20  10
7       17  23  10
8       19  25  10
9       21  27  13
10      23  30  7

我想检索满足以下条件之一的列:if step 1 = step 4step 4 = step 8。在这种情况下,应检索第1列和第3列。第1列,因为第1步的值=第4步的值(即5),而对于第3列,第4步的值=第8步的值(即10)。

我不知道如何在R中做到这一点。有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

您可以通过以下代码获取列索引:

df[1, -1] == df[4, -1] | df[4, -1] == df[8, -1]

#     X1    X2   X3
# 1 TRUE FALSE TRUE

# data
df <- structure(list(Step = 1:10, X1 = c(5L, 5L, 5L, 5L, 13L, 15L, 
17L, 19L, 21L, 23L), X2 = c(10L, 11L, 13L, 15L, 18L, 20L, 23L, 
25L, 27L, 30L), X3 = c(6L, 5L, 9L, 10L, 10L, 10L, 10L, 10L, 13L, 
7L)), class = "data.frame", row.names = c(NA, -10L))