我已经全力寻找了一个在SAS DATA步骤中直接翻译FIRST和LAST指针的R语言翻译,但似乎找不到。对于那些不熟悉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 DATA步骤逐行读取表格,因此我可以使用类似以下语句的语句:
IF FIRST.V1 THEN DO ...
FIRST.V1只有在观察到V1中的元素第一次时才会返回TRUE。换句话说,它将对V1 [1]('1'的第一次出现),V1 [5]('2'的第一次出现)和V1 [9]('3'的第一次出现)返回true。LAST.指针函数以类似的方式运作,但是返回该元素的最后一次出现。
在R中是否有任何模拟这个的东西?
duplicated()
函数?但很难确定,因为您没有真正告诉我们您的实际目标是什么。 - joranddply
),而不是逐行遍历数据集... - Ben Bolker