计算一个唯一值在数据集的所有列和行中出现的次数?
Count of how many times a unique value appears across all columns and rows of a dataset?
我在行中有唯一的 ID,其中列是他们 'sent' 朋友的 ID
。要计算 'received' 朋友的数量,我需要计算一个 ID 在数据集的所有列和行中出现的次数。这在 R 中很容易,但我想在这个项目中继续使用 Stata。
ID
F1_ID
F2_ID
F3_ID
ID_mentions
1
2
3
4
4
2
4
1
4
3
1
2
3
4
2
1
3
3
以上玩具数据。这里,有4次提到ID #1
,3次提到ID #4
,等等
我想生成一个变量,其中包含第一列中每个 ID
值在数据集的任何列中被提及的次数。 ID_mentions
列对此进行了说明。
原来我在这片土地上写了一些东西。您需要使用 ssc install tab_chi
安装它
* Example generated by -dataex-. For more info, type help dataex
clear
input byte(id f1_id f2_id f3_id)
1 2 3 4
2 4 1 .
3 1 2 .
4 2 1 3
end
tabm *id
| values
variable | 1 2 3 4 | Total
-----------+--------------------------------------------+----------
ID | 1 1 1 1 | 4
F1_ID | 1 2 0 1 | 4
F2_ID | 2 1 1 0 | 4
F3_ID | 0 0 1 1 | 2
-----------+--------------------------------------------+----------
Total | 4 4 3 3 | 14
编辑计算所有提及:
gen mentions = .
quietly forval i = 1/`=_N' {
egen work = anycount(*id), value(`=id[`i']')
su work, meanonly
replace mentions = r(sum) in `i'
drop work
}
list
我在行中有唯一的 ID,其中列是他们 'sent' 朋友的 ID
。要计算 'received' 朋友的数量,我需要计算一个 ID 在数据集的所有列和行中出现的次数。这在 R 中很容易,但我想在这个项目中继续使用 Stata。
ID | F1_ID | F2_ID | F3_ID | ID_mentions |
---|---|---|---|---|
1 | 2 | 3 | 4 | 4 |
2 | 4 | 1 | 4 | |
3 | 1 | 2 | 3 | |
4 | 2 | 1 | 3 | 3 |
以上玩具数据。这里,有4次提到ID #1
,3次提到ID #4
,等等
我想生成一个变量,其中包含第一列中每个 ID
值在数据集的任何列中被提及的次数。 ID_mentions
列对此进行了说明。
原来我在这片土地上写了一些东西。您需要使用 ssc install tab_chi
* Example generated by -dataex-. For more info, type help dataex
clear
input byte(id f1_id f2_id f3_id)
1 2 3 4
2 4 1 .
3 1 2 .
4 2 1 3
end
tabm *id
| values
variable | 1 2 3 4 | Total
-----------+--------------------------------------------+----------
ID | 1 1 1 1 | 4
F1_ID | 1 2 0 1 | 4
F2_ID | 2 1 1 0 | 4
F3_ID | 0 0 1 1 | 2
-----------+--------------------------------------------+----------
Total | 4 4 3 3 | 14
编辑计算所有提及:
gen mentions = .
quietly forval i = 1/`=_N' {
egen work = anycount(*id), value(`=id[`i']')
su work, meanonly
replace mentions = r(sum) in `i'
drop work
}
list