R、 因子的最大值
您好,如果有人问这个问题,请重定向-我无法直接看到 我想使用R,并有一个简单的数据帧: 第一列是ID,第二列是分数。 每个ID有36行和相应的分数。 有几千个ID 我想生成一个摘要,其中包含: 每个唯一ID有一个条目,其36行的最大分数 我对R也是新手,但知道以下几点: apply(dataframe,2,max)将给出最大值,但不会按ID细分 我知道有一系列“应用”函数可以在表上应用函数,但我不知道如何组合以获得我想要的 如果它是在Excel中,它将相当于一个简单的透视表——但我想学习如何在R中高效地完成它R、 因子的最大值,r,max,R,Max,您好,如果有人问这个问题,请重定向-我无法直接看到 我想使用R,并有一个简单的数据帧: 第一列是ID,第二列是分数。 每个ID有36行和相应的分数。 有几千个ID 我想生成一个摘要,其中包含: 每个唯一ID有一个条目,其36行的最大分数 我对R也是新手,但知道以下几点: apply(dataframe,2,max)将给出最大值,但不会按ID细分 我知道有一系列“应用”函数可以在表上应用函数,但我不知道如何组合以获得我想要的 如果它是在Excel中,它将相当于一个简单的透视表——但我想学习如何在R
非常感谢您可以使用其中一个聚合功能。在
基本R
中。我们可以将聚合与公式方法结合使用。~
左侧的
指定除分组变量“ID”之外的所有其他变量,分组变量“ID”位于~
右侧。我们将max
指定为FUN
,它将给出按“ID”分组的每个列的max
值的摘要数据集
aggregate(.~ID, df, FUN=max)
或者另一个选项是dplyr
。我们按“ID”分组,并在funs
中使用max
对每个列进行总结,以获得每个列的max
值
library(dplyr)
df %>%
group_by(ID) %>%
summarise_each(funs(max))
或者我们可以将“data.frame”转换为“data.table”(setDT(df)
)。按“ID”列分组,我们通过将Data.table(.SD
)的子集与lappy
循环,得到每列的max
library(data.table)
setDT(df)[,lapply(.SD, max) , by = ID]
如果除了“ID”之外只有一列,我们可以使用summary
而不是summary\u each
,即
df %>%
group_by(ID) %>%
summarise(score=max(score))
数据的类似代码。如果是单列,则为表
setDT(df)[, list(score=max(score)), by = ID]
杰出的。我的第一篇帖子和一个很好的答案帮助我解决了这个问题-非常感谢。