R - 通过创建组“1:10”和“11 或更多”来聚合数据框中的数据

R - Aggregate data in dataframe by creating groups "1:10" and "11 or more"

我最近添加了一个辅助列来将一系列不同类别的数据分组:

  for (i in 1:nrow(A) ) {

    if (A$B[i] < 11) {
      A$C[i] <- A$B[i]
    } else {
      A$C[i] <- "11 or more"
    }
  }

B 是一系列数值 [1,2,3,4,5...n]。执行前面的代码后,我可以使用 aggregate:

将数据帧简化为仅 11 行(1:10 和“11 或更多”)
aggregate(. ~ C, data=A, FUN=sum)

我完全确定,我可以直接实现同样的效果,也就是说,无需使用辅助列。任何功能或库的提示?

应该这样做 A$C <- ifelse(A$B < 11, as.character(A$B), "11 or more") 而且它是矢量化的。

# Does this do what you want?
aggregate(. ~ pmin(B, 11), data = A, FUN = sum)