使用 R 中的 plyr 包重命名输出列

发布于 2024-08-04 08:48:14 字数 503 浏览 3 评论 0原文

Hadley 让我接触了 plyr 包,我发现自己一直在使用它来进行“分组” '之类的东西。但我发现自己必须始终重命名结果列,因为它们默认为 V1、V2 等。

这是一个示例:

mydata<-data.frame(matrix(rnorm(144, mean=2, sd=2),72,2),c(rep("A",24),rep("B",24),rep("C",24)))
colnames(mydata) <- c("x_value", "acres",  "state")
groupAcres <- ddply(mydata, c("state"), function(df)c(sum(df$acres)))
colnames(groupAcres) <- c("state","stateAcres")

有没有办法让 ddply 为我命名结果列,以便我可以省略最后一行?

Hadley turned me on to the plyr package and I find myself using it all the time to do 'group by' sort of stuff. But I find myself having to always rename the resulting columns since they default to V1, V2, etc.

Here's an example:

mydata<-data.frame(matrix(rnorm(144, mean=2, sd=2),72,2),c(rep("A",24),rep("B",24),rep("C",24)))
colnames(mydata) <- c("x_value", "acres",  "state")
groupAcres <- ddply(mydata, c("state"), function(df)c(sum(df$acres)))
colnames(groupAcres) <- c("state","stateAcres")

Is there a way to make ddply name the resulting column for me so I can omit that last line?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一念一轮回 2024-08-11 08:48:14

使用summary(或summary):

  groupAcres <- ddply(mydata, "state", summarise, 
     myName = sum(acres))

Use summarise (or summarize):

  groupAcres <- ddply(mydata, "state", summarise, 
     myName = sum(acres))
纵山崖 2024-08-11 08:48:14

这似乎有效:

> groupAcres <- ddply(mydata, c("state"), function(df) c(myName=sum(df$acres)))
> groupAcres
  state   myName
1     A 56.87973
2     B 57.84451
3     C 52.82415

This seems to work:

> groupAcres <- ddply(mydata, c("state"), function(df) c(myName=sum(df$acres)))
> groupAcres
  state   myName
1     A 56.87973
2     B 57.84451
3     C 52.82415
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文