楼主: douban
4297 17

请问如何将长方矩阵变为方阵?谢谢。 [推广有奖]

  • 3关注
  • 1粉丝

本科生

74%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
6.6448
学术水平
10 点
热心指数
11 点
信用等级
7 点
经验
483 点
帖子
42
精华
0
在线时间
176 小时
注册时间
2009-12-10
最后登录
2023-8-16

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
是之前的问题的后续。之前问题按照大白菜2012大大的方法(见https://bbs.pinggu.org/thread-2128374-1-1.html)已经搞定,但得到的矩阵是长方阵,请问如何变为方阵?谢谢~

之前问题:
手头有系列专利引文数据,类型如下

引用专利   被引专利
A                      G
B                      F
C                      E
D                      D
E                      C
F                      B
G                      A
...                     ...


想将数据相关的专利变为矩阵进行分析,如下:
    A B C D E F G ....
A  0 0 0 0 0 0  1 ...
B  0 0 0 0 0 1 0 ...
C  0 0 0 0 1 0 0 ...
D  0 0 0 1 0 0 0 ...
E  0 0 1 0  0 0 0 ...
F  0 1 0  0 0 0 0 ...
G  1 0 0 0 0 0 0 ...
...



二维码

扫码加我 拉你入群

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

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

关键词:pinggu thread HTML READ HTTP 矩阵 如何

沙发
sungmoo 发表于 2012-11-19 18:48:20 |只看作者 |坛友微信交流群
引用专利   被引专利
A                      G
B                      F
C                      E
A                      B
A                      G

这样的数据,对应怎样的方阵?

使用道具

藤椅
douban 发表于 2012-11-20 14:04:00 |只看作者 |坛友微信交流群
sungmoo 发表于 2012-11-19 18:48
引用专利   被引专利
A                      G
B                      F
嗯,是。两个变量不都是相同的。我打算变成这样的方阵:行和列都含有引用专利和被引专利。
   A B C E F G
A     1         1
B             1
C           1
E
F
G

使用道具

板凳
sungmoo 发表于 2012-11-20 14:29:29 |只看作者 |坛友微信交流群
A、G若出现多次,如何处理?

使用道具

报纸
douban 发表于 2012-11-20 15:33:15 |只看作者 |坛友微信交流群
sungmoo 发表于 2012-11-20 14:29
A、G若出现多次,如何处理?
你上个帖子的例子,A引用G出现两次,数据里不会有这样的重复值。
数据是引用专利和被引专利有部分相同,有部分不同。现在想做所有专利的矩阵,若之间没有引用关系就表示为0,有的话就是1~

使用道具

地板
大白菜2012 发表于 2012-11-21 01:29:16 |只看作者 |坛友微信交流群
clear

input y    x
1                      7
2                      5
3                      5
1                      4
1                      3
2                      4
4                      6
5                                                1
end

sort y x

l

contract y x

preserve
reshape wide _freq , i(y) j(x)
save temp1,replace
l
restore

preserve
reshape wide _freq , i(x) j(y)
qui foreach v of var _freq* {
        replace `v' = 0
                }
rename x y
save temp2,replace
l
restore

use temp1,clear
joinby y using temp2,unmatched(both)

drop _merge

order _all,alpha
order y
qui foreach v of var _freq* {
        replace `v' = 0 if mi(`v')
}

l

erase temp1.dta
erase temp2.dta


已有 1 人评分学术水平 热心指数 信用等级 收起 理由
ywh19860616 + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

元芳,侬怎么L00K?

使用道具

7
fgleric 发表于 2012-11-21 02:22:26 |只看作者 |坛友微信交流群
大白菜2012 发表于 2012-11-21 01:29
clear

input y    x
呵呵,要是我的话,最多写道第一个reshape就打住了~~you are so professional

使用道具

8
大白菜2012 发表于 2012-11-21 03:18:53 |只看作者 |坛友微信交流群
fgleric 发表于 2012-11-21 02:22
呵呵,要是我的话,最多写道第一个reshape就打住了~~you are so professional
偶有一得
元芳,侬怎么L00K?

使用道具

9
蓝色 发表于 2012-11-21 03:36:53 |只看作者 |坛友微信交流群
clear
input   ///
str12 id             str12  x
A                      G
B                      F
C                      E
D                      D
E                      C
F                      B
G                      A
end

gen n=1

reshape wide @n,i(id) j(x) str
rename *n *
mvencode _all, mv(0)
list
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
ywh19860616 + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

10
蓝色 发表于 2012-11-21 03:37:41 |只看作者 |坛友微信交流群
. clear

. input   ///
> str12 id             str12  x

               id             x
  1. A                      G
  2. B                      F
  3. C                      E
  4. D                      D
  5. E                      C
  6. F                      B
  7. G                      A
  8. end

.
. gen n=1

.
. reshape wide @n,i(id) j(x) str
(note: j = A B C D E F G)

Data                               long   ->   wide
-----------------------------------------------------------------------------
Number of obs.                        7   ->       7
Number of variables                   3   ->       8
j variable (7 values)                 x   ->   (dropped)
xij variables:
                                      n   ->   An Bn ... Gn
-----------------------------------------------------------------------------

. rename *n *

. mvencode _all, mv(0)
          id: string variable ignored
           A: 6 missing values recoded
           B: 6 missing values recoded
           C: 6 missing values recoded
           D: 6 missing values recoded
           E: 6 missing values recoded
           F: 6 missing values recoded
           G: 6 missing values recoded

. list

     +--------------------------------+
     | id   A   B   C   D   E   F   G |
     |--------------------------------|
  1. |  A   0   0   0   0   0   0   1 |
  2. |  B   0   0   0   0   0   1   0 |
  3. |  C   0   0   0   0   1   0   0 |
  4. |  D   0   0   0   1   0   0   0 |
  5. |  E   0   0   1   0   0   0   0 |
  6. |  F   0   1   0   0   0   0   0 |
  7. |  G   1   0   0   0   0   0   0 |
     +--------------------------------+


使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 21:30