-1
我使用下面的函数来执行聚合操作,该操作通过某些标签来计算共享。更改聚合输出的列名称
computeShare <- function(df, colX, colY) {
aggregate(as.formula(paste0(colY, '~', colX)),
df, function(x){length(x)/nrow(df)})
}
df_out <- computeShare(some_df, "colx", "coly")
这df_out
使输出df_out
像下面
colx coly
1 name1 1.897315e-02
2 name2 2.988709e-04
3 name3 7.081621e-04
而是列名coly
以上,我想的名字Share
。我可以在下面的函数中通过colnames(df_out)[2] <- "Share"
来完成。
computeShare <- function(df, colX, colY) {
df_out <- aggregate(as.formula(paste0(colY, '~', colX)),
df, function(x){length(x)/nrow(df)})
colnames(df_out)[2] <- "Share"
df_out
}
这是正确的方法吗?
您不必为“聚合”使用公式方法。你可以使用'list'方法,它可以让你添加名字。 – A5C1D2H2I1M1N2O1R2T1
@ A5C1D2H2I1M1N2O1R2T1 - 你能详细介绍一下列表方法吗? – user3206440
正如'(df,aggregate(list(share = coly),list(colx = colx),function(x){length(x)/ nrow(df)}))'或类似的东西...... – A5C1D2H2I1M1N2O1R2T1