从SAS到R - proc排序nodupkey

时间:2017-05-19 12:51:00

标签: r duplicates translate

我正在将SAS脚本转换为R,但我不知道SAS是如何工作的...... 我有这段代码:

proc sort data=table 
(keep= Field1 Field2 Field3 Field4 Field5) 
out=table_nodup nodupkey;
by Field1 Field2 Field4;
run;

我不知道代码会做什么然后我不知道如何将它翻译成R ...任何帮助? :)

2 个答案:

答案 0 :(得分:1)

根据this paper,我说它可以用dplyr描述如下:

library(dplyr)
table %>% 
    select(Field1, Field2, Field3, Field4, Field5) %>% 
    group_by(Field1, Field2, Field4) %>% 
    slice(1)

select适用于SAS的keep,然后nodupkey可以转换为按by个变量进行分组并进行首次出现。好的一点是slice返回的数据框已经按照使用的组排序,因此不需要arrange

答案 1 :(得分:-1)

给定数据框table

 table<- table[,c(Field1,Field2,Field3,Field4,Field5)]#keep specific columns 
 table_nodup<-unique(table[with(data, order(Field1, Field2, Field4))])#orders the data based on the 3 columns and select unique rows