我已經徹底搜索了第一個直接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