首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >操纵data.frames

操纵data.frames
EN

Stack Overflow用户
提问于 2013-02-16 18:57:35
回答 1查看 98关注 0票数 0

我有一份抽样调查表,有点像人口学。其中一列是country (factor),另一列是annual income。现在,我需要计算每个国家的平均值,并用country和相应的平均值存储在新的country中。应该很简单,但我迷路了。数据如下所示:

代码语言:javascript
复制
Country  Income($) Education ... ... ...
1. USA    90000      Phd
2. UK     94000      Undergrad
3. USA    94000      Highschool
4. UK     87000      Phd
5. Russia 77000      Undergrad
6. Norway 60000      Masters
7. Korea  90000      Phd
8. USA    110000     Masters
.
.

我需要最后的结果如下:

代码语言:javascript
复制
USA   UK    Russia ...
98000 90000 75000

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-16 19:33:06

数据示例:

代码语言:javascript
复制
dat <- read.table(text="Country  Income Education 
 USA    90000      Phd
 UK     94000      Undergrad
 USA    94000      Highschool
 UK     87000      Phd
 Russia 77000      Undergrad
 Norway 60000      Masters
 Korea  90000      Phd
 USA    110000     Masters",header=TRUE)

plyr做你想做的事:

如果您的数据被称为dat

代码语言:javascript
复制
library(plyr)
newdf <- ddply(dat, .(Country), function(x) Countrymean = mean(x$Income))

# newdf <- ddply(dat, .(Country), function(x) data.frame(Income = mean(x$Income)))

和合计:

代码语言:javascript
复制
 newdf <- aggregate(Income ~ Country, data = dat, FUN = mean)

对于最后显示的输出,可能是tapply

代码语言:javascript
复制
tapply(dat$Income, dat$Country, mean)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14913918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档