我怎样才能找到一个data.frame元素的第一个和最后出现?(How can I find the

2019-06-26 09:11发布

我寻觅了详尽的直接翻译[R为先。 和最后一个。 在SAS数据步骤,但三分球似乎无法找到一个。 对于那些不熟悉SAS,FIRST。 是识别给定元素的在表中和LAST所述第一外观的布尔值。 是标识最后一个出场的布尔。 例如,考虑下面的排序表:

V1    V2    V3
1     1     1
1     1     2
1     2     3
1     2     4
2     3     5
2     3     6
2     4     7
2     4     8
3     5     9
3     5     10
3     6     11
3     6     12

由于SAS数据步由线读取表行,我可以用这样的语句:

IF FIRST.V1 THEN DO ...

FIRST.V1将返回TRUE当且仅当这是第一次观察已V1遇到。 换句话说,它会为V1 [1],V1 [5](第一 '2' 的出现)( '1' 第一次出现),以及 '3' V1 [9](第一次出现返回true )。 最后。 指针功能的类似方式,但与该元件的最终外观。

R中模仿这样的东西?

Answer 1:

您可以复制和REV(去年)这样做:

> v1=c(1,1,1,2,2,3,3,3,3,4,4,5)

> data.frame(v1,FIRST=!duplicated(v1),LAST=rev(!duplicated(rev(v1))))
   v1 FIRST  LAST
1   1  TRUE FALSE
2   1 FALSE FALSE
3   1 FALSE  TRUE
4   2  TRUE FALSE
5   2 FALSE  TRUE
6   3  TRUE FALSE
7   3 FALSE FALSE
8   3 FALSE FALSE
9   3 FALSE  TRUE
10  4  TRUE FALSE
11  4 FALSE  TRUE
12  5  TRUE  TRUE


文章来源: How can I find the first and last occurrences of an element in a data.frame?
标签: r dataframe sas