gpt4 book ai didi

r - ddply in r - 如何通过列索引引用变量

转载 作者:行者123 更新时间:2023-12-04 05:19:28 24 4
gpt4 key购买 nike

假设我有一个包含许多列的数据框和一个我希望应用的特定摘要过程。可能有几列我有兴趣总结,例如baseball 的第 2、3 和 4 列数据集:

   ddply(baseball, .(year), "nrow")
ddply(baseball, .(stint), "nrow")
ddply(baseball, .(team), "nrow")

当然,我可能希望应用更复杂的摘要并有更多的输出列,但让我们坚持假设摘要将由单列完成,并且我可能希望通过几列进行总结。因此,让我们为摘要编写一个函数,这样我就可以轻松更改用于 .(var) 的列:
   baseballByCol <- function(col) {
ddply(baseball, .(baseball[,col]), "nrow")
}

这几乎有效: baseballByCol(2)ddply(baseball, .(year), "nrow") 的输出相同除了那个 colnames(baseballByCol(2))c("baseball[, col]", "nrow")colnames(ddply(baseball, .(year), "nrow"))是想要的 c("year", "nrow") .

当然我们可以解决:
   baseballByCol <- function(col) {
df <- ddply(baseball, .(baseball[,col]), "nrow")
colnames(df)[1] <- colnames(baseball)[col]
return(df)
}

现在 baseballByCol(2)ddply(baseball, .(year), "nrow") 的输出完全相同, 总结一下我可以使用 baseballByCol(3)等等。

但这闻起来有点难看。除了 .(baseball[,col]), "nrow") 之外,真的没有更好的方法可以通过列索引而不是名称来引用“by”变量吗?哪个弄乱了列名?

是否有更简洁的解决方案,其中函数将变量名作为参数而不是列索引?

最佳答案

baseballByCol <- function(col) {
ddply(baseball, col, "nrow")
}

使用索引和列名。

关于r - ddply in r - 如何通过列索引引用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13825692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com