我已经彻底搜索了第一个直接R翻译。和最后。 SAS DATA步骤中的指针,但似乎无法找到一个。对于那些不熟悉SAS的人,FIRST。是一个布尔值,用于标识表和LAST中给定元素的第一次出现。是标识最后一次出现的布尔值。例如,考虑下面的排序表:如何查找data.frame中元素的第一次和最后一次出现?
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]('1'的第一次出现),V1 [5]('2'的第一次出现)和V1 [9]('3'的第一次出现) )。最后。指针以类似的方式起作用,但最终出现该元素。
有什么R模拟此?
也许'复制()'?但很难说,因为你没有真正告诉我们你的目标是什么。 – joran 2012-07-18 17:13:27
可能会有更多的R-ish解决方案(例如使用'ddply'),而不是一次循环数据集一行...... – 2012-07-18 17:21:57
我不想实际上一行一行地遍历data.frame。我只想要一个函数,如果它是该列中第一次出现的值,则返回true,否则返回false。此外,只有当它是最后一次出现的值时才返回true,否则返回false。 Spacedman的解决方案对于这些目的绰绰有余。 – asteri 2012-07-18 17:26:26