-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