【问题标题】:Compare the Greater than elements in a vector in r [duplicate]比较r中向量中的大于元素[重复]
【发布时间】:2016-01-26 20:18:40
【问题描述】:

我有这个由两个向量组成的数据框,它包含数百万行。我使用了循环,但需要一天的时间来比较这个值。 有人可以建议任何应用功能吗??
姓名销售
1
2
3
B 1
B 5
乙 6 .
.

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

输出应在数据框中。
姓名销售
3
乙 6

【问题讨论】:

  • 你可以使用 dplyr。 dat %>% group_by(Names) %>% summarise(Sales = max(Sales)) %>% data.frame()

标签: r apply


【解决方案1】:

你可以试试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))

【讨论】:

  • 您好,它有效,但是如果我有缺失值怎么办,它会跳过名称 Cat_A Cat_B A 1 NA B NA NA 如果我使用上面的聚合函数它会跳过在 Cat_A 和 Cat_B 中都有 NA 但还是要A。
  • 聚合处理NA的默认选项是na.omit,这意味着忽略任何缺失值。您可以通过指定na.action 参数来更改此行为,例如aggregate(Cat_A ~ ., df1 , max, na.action = na.pass),但这可能会导致max 函数出现问题。我想我不明白在 NA 的情况下你想要的输出是什么。也许你想问一个新问题,因为这不是你原来帖子的一部分。
猜你喜欢
  • 1970-01-01
  • 2018-05-23
  • 2016-09-19
  • 1970-01-01
  • 1970-01-01
  • 2019-02-23
  • 2014-07-30
  • 2016-02-16
  • 1970-01-01
相关资源
最近更新 更多