Identify the peers within a firm

2 次查看(过去 30 天)
Dear all:
I am working on a panel dataset, which contains worker ID, firm ID, and year. Each worker works for one firm only in each year - so it is a worker-year panel. I hope to create a matrix that shows whether worker j is worker i's coworker. Ideally, I hope to create a matrix as follows:
where and 1 indicates worker i's coworker's worker index in year t.
I am wondering if anyone knows how to have a quick algorithm instead looping over the worker's index (because there are thousands of workers in the data).
Thank you very much and I look forward to hearing from you!
Best,
Long
  2 个评论
Long Hong
Long Hong 2020-2-29
Hi Kalyan, thanks for asking! An easy example is as follows (two firms and one period).
IDw IDf
1 1
2 1
3 1
4 2
5 2
Then and . Hope it helps.

请先登录,再进行评论。

采纳的回答

Image Analyst
Image Analyst 2020-2-29
You can simply use the firm vector and put it into pdist2(). Any distance that is zero means those two workers are in the same firm
firm2 = [firms(:), firms(:)];
distances = pdist2(firm2, firm2);
For example, if there is a zero at row 30 and column 142 of distances, it means that worker #30 and worker #142 work in the same firm.
  6 个评论
Long Hong
Long Hong 2020-5-17
Dear @Image Analyst,
I am writing to ask a very quick follow-up question on the use of pdist2,
Using my current (huge) data, pdist2 requires 0.7 million x 0.7 million matrix , and my computer cannot handle such a big matrix. Is there any way to solve this problem (say, adding a sparse matrix option since there are basically 0 and 1 in the matrix)?
Thank you, and I look forward to hearing from you!
Best,
Long

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Get Started with MATLAB 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by