楼主: 2997247017
584 3

[编程问题求助] 想计算一个变量内所有样本的两两相减的绝对值,但是i>j.请问stata中该怎么写? [推广有奖]

  • 0关注
  • 0粉丝

大专生

0%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
65 点
帖子
6
精华
0
在线时间
82 小时
注册时间
2022-11-26
最后登录
2025-3-22

楼主
2997247017 发表于 2023-11-13 22:29:23 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
就是这样的公式
二维码

扫码加我 拉你入群

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

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

关键词:Stata tata 绝对值

沙发
2997247017 发表于 2023-11-13 22:30:56
如果不考虑i>j的情况,应该这样:
count
local obs = r(N)
local sum=0
forvalues i=1/`obs' {
    forvalues j=1/`obs' {
        local sum = `sum'+abs(x[`i']-x[`j'])
    }
}
可是考虑之后,不知道怎么改了

藤椅
ChenJY26 学生认证  发表于 2023-11-19 14:59:14
试试这个呢
count
local obs = r(N)
local sum = 0

forvalues i = 1 / `obs' {
    forvalues j = 1 / `obs' {
        if `i' > `j' {
            local sum = `sum' + abs(y[`i'] - y[`j'])
        }
    }
}

display "`sum'"
这段代码中,使用了两个嵌套的循环,在内部循环中,使用了条件语句 if 来确保只有在 i > j 的情况下才进行绝对值的计算,并将结果累加到 sum 变量中。最后使用 display 命令输出结果。

板凳
2997247017 发表于 2023-11-19 18:54:27
ChenJY26 发表于 2023-11-19 14:59
试试这个呢
count
local obs = r(N)
可以运行了,实在感谢!朋友。可是,我想问一下,这和手动算的结果不一样哎,是怎么回事啊?算了好几遍

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-31 01:13