R Equivalents for SAS FIRST. and LAST
===

I have searched exhaustively for a direct R translation for the FIRST. and LAST. pointers in SAS DATA steps but can't seem to find one.  For those not familiar with SAS, FIRST. is a boolean that identifies the first appearance of a given element in a table and LAST. is a boolean that identifies the last appearance.  For instance, consider the following sorted table:

    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

Because SAS DATA steps read tables line by line, I can use a statement like:

    IF FIRST.V1 THEN DO ...

FIRST.V1 will return TRUE if and only if this is the first time the observation has been encountered in V1.  In other words, it will return true for V1[1] (the first appearance of '1'), V1[5] (the first appearance of '2'), and V1[9] (the first appearance of '3').  The LAST. pointer functions in analogous fashion, but with the final appearance of that element.

Is there anything in R that emulates this?

Thank you for your help.