R=头

R=头,r,aggregate,R,Aggregate,我想通过两列(序列和程序)聚合一个表(选项卡),以获得samplesize(FUN=head)的顶行 sq这是因为默认情况下,data.frame从字符列创建一个因子。你需要: tab <- data.frame(sq, prog, ss, stringsAsFactors = FALSE) 这就回答了为什么它给我数字而不是聚合表中的字母。然而,主要的问题仍然存在:它忽略了样本大小可能相同的记录,用于序列和程序的不同组合?好吧,我没有意识到。我现在相应地编辑了我的答案。您的聚合是错误的:

我想通过两列(序列和程序)聚合一个表(选项卡),以获得samplesize(FUN=head)的顶行


sq这是因为默认情况下,
data.frame
从字符列创建一个因子。你需要:

tab <- data.frame(sq, prog, ss, stringsAsFactors = FALSE)

这就回答了为什么它给我数字而不是聚合表中的字母。然而,主要的问题仍然存在:它忽略了样本大小可能相同的记录,用于序列和程序的不同组合?好吧,我没有意识到。我现在相应地编辑了我的答案。您的聚合是错误的:
agg
agg  <- aggregate(cbind(sq,prog) ~ ss, data = tab, FUN=head,1,na.rm=TRUE)
tab <- data.frame(sq, prog, ss, stringsAsFactors = FALSE)
library(dplyr)
tab %>%
  group_by(sq, prog) %>% 
  filter(row_number() == 1)