从许多列的数据框中,我想通过单个列聚合(即sum
)数百列,而不指定每个列名。
一些示例数据:
names <- floor(runif(20, 1, 5))
sample <- cbind(names)
for(i in 1:20){
col <- rnorm(20,2,4)
sample <- cbind(sample, col)
}
到目前为止我所拥有的是以下代码,但它告诉我参数的长度必须相同。
aggregated <- aggregate.data.frame(sample[,c(2:20)], by = as.list(names), FUN = 'sum')
原始数据集要大很多,所以我不能指定要聚合的每个列的名称,我也不能使用list函数。
答案 0 :(得分:1)
你根本不需要列出它们:
aggregate(. ~ names, sample, sum) # . represents all other columns
当然,基地R是我的最爱,但万一有人想要dplyr
:
library(dplyr)
data.frame(sample) %>%
group_by(names) %>%
summarise_each(funs(sum))
答案 1 :(得分:0)
稍微改变你的代码:
<ContentPage.ToolbarItems>
<ToolbarItem Order="Secondary" Icon="morevert.png" Text="Atualizar" Command="{Binding Atualizar}"/>
<ToolbarItem Order="Secondary" Text="Ajuda" Command="{Binding Ajuda}"/>
<ToolbarItem Order="Secondary" Text="Sair" Command="{Binding Sair}"/>
</ContentPage.ToolbarItems>