2017-05-19 19 views
-1

Ich bin ein SAS-Skript R traslating aber ich weiß nicht, wie funktioniert SAS Arbeit ... ich dieses Stück Code haben:Von SAS R - proc sort nodupkey

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

I don Ich weiß nicht, was der Code machen wird, und dann weiß ich nicht, wie ich ihn in R übersetzen soll ... Hilfe? :)

+0

Dies wird ein Dataset namens 'table_nodup' ausgeben, das nur' Field1 - 5' hat. Doppelte Werte von "Feld 1, Feld 2, Feld 4" werden entfernt, so dass es nur eine Zeile pro "Feld 1/2/4" -Kombination gibt. –

+0

und welchen Wert wird es von field3 und field5 nehmen? der niedrigste wegen der Sorte? –

+0

Die Codeumwandlung ist für Stack Overflow nicht möglich. Sie müssen entweder fragen, was der Code als [tag: sas] -Frage tut, oder ob Sie wissen, was der Code tut (was auch immer er tut) als [tag: r] -Frage. Wenn Sie die erste Frage stellen, machen Sie bitte zuerst eine Recherche; Sie sollten in der Lage sein, die Grundlagen mit einer schnellen Suche zu finden. – Joe

Antwort

-1

den Datenrahmen gegeben 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 
+0

Ok, also zuerst wählt er die Felder aus, dann sortiert er die Tabelle nach dem Schlüssel und dann nimmt er doppelte Daten mit dem Schlüssel heraus ... und für die Felder 3 und 5 welchen Wert braucht er? Der niedrigste wegen der Sorte? –

+0

Gawwd ich hasse SAS :( – amonk

1

this paper Laut ich würde sagen, es mit dplyr wie folgt beschrieben werden kann:

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

select ist für SAS keep, dann nodupkey kann durch by Variablen in Gruppierung übersetzt werden und die ersten Vorkommen. Eine gute Sache ist, dass slice einen Datenrahmen zurückgibt, der bereits nach den verwendeten Gruppen sortiert ist, so dass arrange nicht benötigt wird.