全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2114 7
2017-02-24
先把observations按照变量cost排序,把前n个observation的capacity求和,直到capacity之和达到5000,求n。
求问有这样的命令吗?
二维码

扫码加我 拉你入群

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

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

全部回复
2017-2-24 11:37:52
不知你要用哪个工具实现这个过程呢?我随手用R模拟了下你描述的这个计算,你看看能用不?(未考虑代码优化)
a <- c(1:500)
b <- rnorm(500,150,18)
c <- rnorm(500,88,12)
t <- data.frame(a,b,c)
names(t) <- c("id","capacity","cost")
mydata <- t[order(t$cost),]


result <- ""
for (i in 1:500){
  temp <- sum(mydata$capacity[1:i])
  if (temp<=5000)  {
     result <- mydata[1:i,]
   }
   else break
  }
二维码

扫码加我 拉你入群

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

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

2017-2-24 11:44:31
附上结果:
length(result$capacity)#输出结果的变量数目(计算到第33个符合条件)
[1] 33
> sum(mydata$capacity[1:33])#前33个之和4954
[1] 4954.459
> sum(mydata$capacity[1:34])#前34个之和5116,超5000
[1] 5115.677
二维码

扫码加我 拉你入群

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

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

2017-2-26 03:50:03
正负号 发表于 2017-2-24 11:44
附上结果:
length(result$capacity)#输出结果的变量数目(计算到第33个符合条件)
[1] 33
可以用Stata吗?
二维码

扫码加我 拉你入群

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

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

2017-2-26 17:30:48
anti-garlic 发表于 2017-2-26 03:50
可以用Stata吗?
没资料无法试试,但你可
复制代码
则 d = 1 的位置就是你的答案了!(当然,我不太认为会刚好等于 5000,所以你可能找不到 d = 1)
二维码

扫码加我 拉你入群

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

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

2017-2-26 23:55:15
黃河泉 发表于 2017-2-26 17:30
没资料无法试试,但你可则 d = 1 的位置就是你的答案了!(当然,我不太认为会刚好等于 5000,所以你可能 ...
好的!感谢大神!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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