我试图从R中的Excel复制max if函数。
ksu price max
9144037 3.11 3.11
8448749 4.19 5.24
9649391 0 8.39
8448749 4.19 5.24
8448749 4.19 5.24
8448749 4.19 5.24
8448749 4.19 5.24
9649391 8.39 8.39
8448749 5.24 5.24
9144037 1.99 3.11
9144037 1.99 3.11
如果我在excel中这样做,我会使用max(if())。此代码应该查看每个ksu的最大价格,并返回最后一列的最大值。我试过这个:
max(price[ksu == ksu])
但它并没有给我所需的输出。无论ksu如何,它只返回一个最大值。
答案 0 :(得分:2)
假设您有一个名为viewData()
的data.frame,您可以轻松使用df
函数来获取所需内容。一个例子:
ave
因此,使用您的变量名称(但仍假设data.frame为> df <- data.frame(grp = c('a','a','b','b'), vals = 1:4)
> df
grp vals
1 a 1
2 a 2
3 b 3
4 b 4
> # Returns a vector
> ave(df$vals, df$grp, FUN = max)
[1] 2 2 4 4
> # So we can store it back into the data.frame if we want
> df$max <- ave(df$vals, df$grp, FUN = max)
> df
grp vals max
1 a 1 2
2 a 2 2
3 b 3 4
4 b 4 4
):
df
答案 1 :(得分:1)
假设您的数据位于名为data.frame
的{{1}}中,我们可以使用 dat
包:
dplyr