全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2118 8
2014-07-03
假设需要求各省各年收入(y)的基尼系数(function已知),可以用什么循环的命令呢,一般循环似乎都是对于次数,有什么命令可以根据省份和年份进行循环呢?

非常感谢!

   prov       yr          hh            y
      a       1995         1            30
      a       1995         2            55
      a        1995        3            65
      a        2000        1            77
      a        2000        2            87
      a        2000        3            41
      b        2000        1            65
      b        2000        2            70
      b        2000        3            43
...

P.S. 这个问题之前发过如何切割,现已明白如何根据省份和年份切割了,如省a,2000年,命令如下:

Data=read.csv("try.csv")
subdata=subset(Data,Data[,2]=="2000" & Data[,1]=="a",select=c(prov,yr,hh,y))
subdata




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-7-3 18:02:46
aggregate函数,tapply函数,dplyr函数都可以做,不需要循环,循环效率太低
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-7-4 09:36:19
水天一色DIY 发表于 2014-7-3 18:02
aggregate函数,tapply函数,dplyr函数都可以做,不需要循环,循环效率太低
很好用!!谢谢!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-7-4 17:17:02
水天一色DIY 发表于 2014-7-3 18:02
aggregate函数,tapply函数,dplyr函数都可以做,不需要循环,循环效率太低
再次请教一下。我的function里有两个结果,所以在function里面我最后return了一个向量(包含两个结果)。再运行以下命令。

Data=read.csv("try.csv")
attach(Data)
result=tapply(y,list(prov,yr),DER)
result

得出的结果是:

> result
  1995      2000     
a Numeric,2 Numeric,2
b NULL      Numeric,2

请问您知道如何显示出来么?

非常感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-7-4 17:24:53
水天一色DIY 发表于 2014-7-3 18:02
aggregate函数,tapply函数,dplyr函数都可以做,不需要循环,循环效率太低
不分开写成两个function是因为计算过程中有核密度估计,分成两个方程等于算两次核密度估计。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-7-4 17:45:19
winniewang2222 发表于 2014-7-4 09:36
很好用!!谢谢!!!
抱歉问了个傻问题,存下来就出来了。
write.csv(result,"output.csv")

^_^
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群