2012-07-17 97 views
0

这可能是一个基本问题,但我想计算65-74岁老年人的平均债券财富,并且只对那些有债券(> 0)并且没有回复的人(这是通过9999 ...)。提取R中的分组数据

mean(Bonds[Age>64 & Age<75 & Bonds>0 & Bonds<999999999999]) 

我收到一条错误消息: 更长对象长度不短对象长度

我在做什么错的多?

+1

你确定这不是一个警告?有一个很大的区别,R会明确地说出它是一个警告还是一个错误。 – joran 2012-07-17 21:03:22

+0

什么是长度(年龄)和长度(债券),还是更好,但只是输入它们? – 2012-07-17 21:05:35

回答

0

从这个问题中我们不清楚数据是如何形成的;我假设Bonds是一个data.frame与两列BondsAge。然后

idx <- Bonds$Age>64 & Bonds$Age<75 & Bonds$Bonds>0 & Bonds$Bonds<999999999999 

指示哪些行fullfill的条件和

mean(Bonds[idx, "Bonds"]) 

返回列Bonds的平均值。

+0

非常感谢 - 你的回复使我认为我的方法没问题,并且这些建议帮助我找出了问题所在。我使用了两个大型数据集,其变量名应该是相同的(两个不同年份的相同调查),但年龄变量名称被一个字母所改变,所以我从一年中抓取了一个变量,另一个来自另一年 - 因此警告(谢谢你的区别,乔兰)。阿里,长度的建议让我明白了问题。谢谢Karsten,为我展示了一种新的方法。 – 2012-07-18 01:40:30