如何在R中的单个列中找到更改?

时间:2012-12-10 14:42:11

标签: r dataframe

我有一个" csv"包含3列,100 +行的文件。所有列中的变量都根据第1列中的数据而变化,"时间"。

Time    Temp    Cloud
1100    22  1
1102    14  1
1104    14  2
1106    23  1
1108    12  1
1110    21  2
1112    17  2
1114    12  3
1116    24  3

我想知道什么时候"云"变化[例如在第3行和第6行],我想获得放在该行的其他变量,以及该行之前的行。 我怎样才能做到这一点 ? 感谢

2 个答案:

答案 0 :(得分:1)

diff几乎可以直接执行此操作。适用两次。调用示例数据d

> d[c(diff(d$Cloud) != 0,FALSE) | c(FALSE, diff(d$Cloud) != 0),]
  Time Temp Cloud
2 1102   14     1
3 1104   14     2
4 1106   23     1
5 1108   12     1
6 1110   21     2
7 1112   17     2
8 1114   12     3

答案 1 :(得分:1)

我会做这样的事情:

df$Change <- c(0,sign(diff(df$Cloud)))
subset(df,Change!=0)[,4]

这将消除没有变化的行。