从SAS到R-proc排序nodupkey
我正在将SAS脚本传输到R,但我不知道SAS是如何工作的。。。 我有一段代码:从SAS到R-proc排序nodupkey,r,duplicates,translate,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…有什么帮助吗?:) 给定数据帧表: table<- table[,c(Field1,Field2,Field3,
proc sort data=table
(keep= Field1 Field2 Field3 Field4 Field5)
out=table_nodup nodupkey;
by Field1 Field2 Field4;
run;
我不知道代码会做什么,然后我也不知道如何将它翻译成R…有什么帮助吗?:) 给定数据帧
表
:
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
table根据我的说法,它可以用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\u nodup
的数据集,该数据集只有Field1-5
。字段1、字段2、字段4的重复值将被删除,以便每个字段1/2/4
组合只有一行。它将从字段3和字段5中获取哪个值?由于排序?代码转换导致的最低值与堆栈溢出无关。您需要以问题的形式询问代码做了什么,或者您是否知道代码做了什么,以问题的形式询问如何做(无论它做什么)。如果你问前者,请先做一些研究;您至少应该能够通过快速搜索找到基本信息。好的,首先它选择字段,然后按键对表进行排序,然后按键取出重复的数据…对于字段3和5,需要哪个值?由于排序的原因,最低的一个?Gawwd我讨厌SAS:(