我traslating一個SAS腳本於R,但我不知道如何SAS工作...... 我有這樣一段代碼:從SAS至R - PROC排序nodupkey
proc sort data=table
(keep= Field1 Field2 Field3 Field4 Field5)
out=table_nodup nodupkey;
by Field1 Field2 Field4;
run;
我不不知道代碼會做什麼,然後我不知道如何將它翻譯成R ...有什麼幫助? :)
我traslating一個SAS腳本於R,但我不知道如何SAS工作...... 我有這樣一段代碼:從SAS至R - PROC排序nodupkey
proc sort data=table
(keep= Field1 Field2 Field3 Field4 Field5)
out=table_nodup nodupkey;
by Field1 Field2 Field4;
run;
我不不知道代碼會做什麼,然後我不知道如何將它翻譯成R ...有什麼幫助? :)
考慮到數據幀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
好吧,首先它選擇字段,然後按鍵排序表,然後通過鍵取出重複的數據...以及字段3和5需要哪些值?由於排序最低的一個? –
Gawwd我討厭SAS :( – amonk
根據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
。
這將輸出一個名爲'table_nodup'的數據集,它只有'Field1 - 5'。將刪除「字段1,字段2,字段4」的重複值,以便每個「字段1/2/4」組合只有1行。 –
以及從field3和field5獲取哪個值?由於排序最低的一個? –
代碼轉換對於堆棧溢出而言是無關緊要的。你需要詢問代碼是做什麼的[tag:sas]問題,或者如果你知道代碼要做什麼(不管它做什麼)作爲[tag:r]問題。如果你問前者,請先做一些研究;您應該至少能夠通過快速搜索找到基本信息。 – Joe