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)
我最近添加了一个辅助列来将一系列不同类别的数据分组:
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)