2016-01-26 34 views
0

我有这个数据帧,它由两个向量组成,它运行到百万行。我使用循环,但需要一天的时间来比较值。 有人可以建议任何应用功能?
名称销售
A 1
A 2
A 3
乙1
B 5
乙6 。
比较大于在一个向量中的元素r

我想要的是唯一的名称列表,以及针对该特定名称的销售最大元素。像A有3行,最高销售额是3.

输出应该在数据帧中。
名销售
A 3
b 6分配

+0

你可以使用dplyr尝试。 'dat%>>%group_by(Names)%>%summarize(Sales = max(Sales))%>%data.frame()' – count

回答

0

您可以aggregate()

aggregate(V2 ~ ., df1 , max) 
# V1 V2 
#1 A 3 
#2 B 6 

数据

df1 <- structure(list(V1 = structure(c(1L, 1L, 1L, 2L, 2L, 2L), 
.Label = c("A", "B"), class = "factor"), V2 = c(1L, 2L, 3L, 1L, 5L, 6L)), 
.Names = c("V1","V2"), class = "data.frame", row.names = c(NA, -6L)) 
+0

你好,但如果我有缺失的值,它跳过那些名称Cat_A Cat_B A 1 NA B NA NA如果我使用上面的聚合函数,它会跳过B在Cat_A和Cat_B中都有NA,但仍然需要A. – iamashish

+0

集合中处理NA的缺省选项是na.omit,这意味着缺少任何值被忽略。你可以通过指定'na.action'参数来改变这种行为,比如'aggregate(Cat_A〜。,df1,max,na.action = na.pass)',但这可能会在max函数中产生问题。我想我不明白在NA的情况下你的期望输出是什么。也许你想问一个新的问题,因为这不是你原来的职位的一部分。 – RHertel

相关问题