假设我有一个包含两列或更多列的数据帧df,是否有一种简单的方法可以使用unique()或其他R函数来创建两列或更多列的唯一组合的子集?
我知道我可以使用sqldf()并编写一个简单的"SELECT DISTINCT var1, var2, ... varN"查询,但我正在寻找一种R方式来做到这一点.
我想到尝试ftable强制转换为数据帧并使用字段名称,但我也得到了数据集中不存在的组合的交叉表:
uniques <- as.data.frame(ftable(df$var1, df$var2))
Run Code Online (Sandbox Code Playgroud) 我有一个 59720 obs 的数据框。看起来像下面。我想为查找表中的每个观察值分配一个 MARKETNAME。
> data (a)
DAY HOUR LEAD Row.Count DATE ITIME HOMEPHONE CITY STATE ZIPCODE ZONENAME
1 Monday 13:00 1 9430 7/1/2013 13:42:51 FORT LAUDERDALE FL 33315 68
2 Monday 13:00 1 9432 7/1/2013 13:43:50 xxxxx9802x PLEASANT GROVE AL 35127 82
3 Monday 13:00 1 9434 7/1/2013 13:46:18 5xxxx85x10 ORO VALLEY AZ 85737 54
4 Monday 0:00 1 9435 7/1/2013 0:04:34 50xxxx1x364 SPOKANE WA 99204 211
5 Monday 11:00 1 9436 7/1/2013 11:45:43 951xxxxx20 RIVERSIDE CA 92507 …Run Code Online (Sandbox Code Playgroud) 请考虑下表:
primaryKey id activity template creator created
1 1 3 5 x 2011-10-13
2 2 4 2 y 2011-10-15
3 2 4 7 z 2011-10-24
4 2 4 7 u 2011-10-29
Run Code Online (Sandbox Code Playgroud)
从这里我想要检索具有唯一组合的记录id,activity和template.如果存在两个或更多这些字段的唯一组合,我想采取它们中的第一个.
作为上表数据的一个例子,我需要的输出是
primaryKey id activity template creator created
1 1 3 5 x 2011-10-13
2 2 4 2 y 2011-10-15
3 2 4 7 z 2011-10-24
Run Code Online (Sandbox Code Playgroud)
(因为记录3和4具有相同的组合,我想只记录3,因为它是第一次出现)
我可以使用单个SQL语句执行此操作吗?