首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从R中的数据框中删除重复的列组合

从R中的数据框中删除重复的列组合
EN

Stack Overflow用户
提问于 2011-12-08 04:58:25
回答 4查看 19.5K关注 0票数 5

我想从以下数据中删除sessionid、qf和qn的重复组合

代码语言:javascript
运行
复制
               sessionid             qf        qn         city
1  9cf571c8faa67cad2aa9ff41f3a26e38     cat   biddix          fresno
2  e30f853d4e54604fd62858badb68113a   caleb     amos                
3  2ad41134cc285bcc06892fd68a471cd7  daniel  folkers                
4  2ad41134cc285bcc06892fd68a471cd7  daniel  folkers                
5  63a5e839510a647c1ff3b8aed684c2a5 charles   pierce           flint
6  691df47f2df12f14f000f9a17d1cc40e       j    franz prescott+valley
7  691df47f2df12f14f000f9a17d1cc40e       j    franz prescott+valley
8  b3a1476aa37ae4b799495256324a8d3d  carrie mascorro            brea
9  bd9f1404b313415e7e7b8769376d2705    fred  morales       las+vegas
10 b50a610292803dc302f24ae507ea853a  aurora      lee                
11 fb74940e6feb0dc61a1b4d09fcbbcb37  andrew    price       yorkville 

我将数据作为data.frame读入,并将其命名为mydata。这里是我到目前为止拥有的代码,但我需要知道如何首先正确地对data.frame进行排序。其次,删除sessionid、qf和qn的重复组合。最后是直方图中列qf中的字符

代码语言:javascript
运行
复制
sortDATA<-function(name)
{
#sort the code by session Id, first name, then last name
sort1.name <- name[order("sessionid","qf","qn") , ]
#create a vector of length of first names
sname<-nchar(sort1.name$qf)
hist(sname)
}

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-12-08 05:07:11

duplicated()有一个针对data.frames的方法,它就是为这类任务设计的:

代码语言:javascript
运行
复制
df <- data.frame(a = c(1:4, 1:4), 
                 b = c(4:1, 4:1), 
                 d = LETTERS[1:8])

df[!duplicated(df[c("a", "b")]),]
#   a b d
# 1 1 4 A
# 2 2 3 B
# 3 3 2 C
# 4 4 1 D
票数 18
EN

Stack Overflow用户

发布于 2011-12-08 05:18:56

在您的示例中,重复的行是完全重复的。unique与data.frames一起工作。

代码语言:javascript
运行
复制
udf <- unique( my.data.frame )

至于排序..。joran刚刚发布了答案。

票数 3
EN

Stack Overflow用户

发布于 2011-12-08 05:14:35

为了解决排序问题,首先读入示例数据:

代码语言:javascript
运行
复制
dat <- read.table(text = "               sessionid             qf        qn         city
1  9cf571c8faa67cad2aa9ff41f3a26e38     cat   biddix          fresno
2  e30f853d4e54604fd62858badb68113a   caleb     amos             NA   
3  2ad41134cc285bcc06892fd68a471cd7  daniel  folkers             NA   
4  2ad41134cc285bcc06892fd68a471cd7  daniel  folkers             NA   
5  63a5e839510a647c1ff3b8aed684c2a5 charles   pierce           flint
6  691df47f2df12f14f000f9a17d1cc40e       j    franz prescott+valley
7  691df47f2df12f14f000f9a17d1cc40e       j    franz prescott+valley
8  b3a1476aa37ae4b799495256324a8d3d  carrie mascorro            brea
9  bd9f1404b313415e7e7b8769376d2705    fred  morales       las+vegas
10 b50a610292803dc302f24ae507ea853a  aurora      lee              NA  
11 fb74940e6feb0dc61a1b4d09fcbbcb37  andrew    price       yorkville ",sep = "",header = TRUE)

然后您可以使用plyr中的arrange

代码语言:javascript
运行
复制
arrange(dat,sessionid,qf,qn)

或者使用基函数,

代码语言:javascript
运行
复制
with(dat,dat[order(sessionid,qf,qn),])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8422415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档