楼主: che_nax
3631 2

[其他] 如何处理Excel数据中一格多行的问题 [推广有奖]

  • 2关注
  • 0粉丝

已卖:1份资源

本科生

82%

还不是VIP/贵宾

-

威望
0
论坛币
214 个
通用积分
0.0600
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
14965 点
帖子
31
精华
0
在线时间
191 小时
注册时间
2008-3-12
最后登录
2023-1-31

楼主
che_nax 发表于 2012-3-19 09:04:04 |AI写论文
5论坛币
数据是alliance方面的,原始的Excel文件60+M,我只把涉及到的3列拷了出来。目的是看focal的公司某年有多少个partner,以前是否有合作过,其中R&D的alliance又有多少。
部分数据:

Alliance
    Date
    Announced

Participant
    Ultimate Parent Name

Activity
    Description

1/1/1982

Green  Cross Corp
    Grupo Grifols SA

Manufacturing  Services

1/1/1982

L'Oreal  SA
    Fujisawa Pharmaceutical Co Ltd

Manufacturing  Services

1/1/1983

Novo  Industri AS
    Connaught Biosciences Inc

Marketing  Services

12/1/1984

Astellas  Pharma Inc
    Eli Lilly & Co

Research  & Development Services
    Marketing Services

1/1/1985

Green  Cross Corp
    Biogen Inc

Licensing  Services
    Research & Development Services

1/1/1985

Biotechnology  Investments Ltd
    Immunetech Pharmaceuticals

1/1/1985

Astellas  Pharma Inc
    Rorer Group Inc

Licensing  Services
    Marketing Services

1/1/1985

Toyobo  Co Ltd
    Genetics Technology

Licensing  Services

1/1/1985

LCF  Rothschild Group
    Immunetech Pharmaceuticals

1/1/1985

Pharmacia  ENI
    Hoechst AG

Licensing  Services




目前的问题就是stata如果用insheet指令的话,一格中如果有硬回车就会被忽略成空格,而本来有些词组就有空格,所以没法split成partner1, partner2; description1, description2...

毫无头绪,求指点。
Book.xlsx (344.27 KB)

关键词:excel数据 EXCEL xcel exce cel partner Excel Cross 如何

沙发
liexiagao 发表于 2012-3-19 10:04:13
只能在你9087行 里调整,或按规律拷贝出来,才可去掉空格。或者下载时选择一种其他的保存方式,如文本方式,再分栏
踏踏实实做事,老老实实做人

藤椅
che_nax 发表于 2012-3-19 16:53:05
liexiagao 发表于 2012-3-19 10:04
只能在你9087行 里调整,或按规律拷贝出来,才可去掉空格。或者下载时选择一种其他的保存方式,如文本方式, ...
呃……这个就是原始数据,没有其他格式了……

个人瞎琢磨的lame方案来了:

拷出两列(比如date和firm name)到Word,convert to text,再convert to table,大概是这个造型——
                       date                                        firm

1/1/1982

Green Cross Corp
Grupo Grifols SA

1/1/1982

L'Oreal SA
Fujisawa Pharmaceutical Co Ltd

1/1/1983

Novo Industri AS
Connaught Biosciences Inc

12/1/1984

Astellas Pharma Inc
Eli Lilly & Co

1/1/1985

Green Cross Corp
Biogen Inc

1/1/1985

Biotechnology Investments Ltd
Immunetech Pharmaceuticals

1/1/1985

Astellas Pharma Inc
Rorer Group Inc

1/1/1985

Toyobo Co Ltd
Genetics Technology

1/1/1985

LCF Rothschild Group
Immunetech Pharmaceuticals

1/1/1985

Pharmacia ENI
Hoechst AG

然后拷到stata,运行
gen wp=0
replace wp=1 if firm==""
replace firm = date if wp==1
replace date ="" if wp==1


得到的结果就大体是这样了……

datefirmwp

1/1/1982

Green Cross Corp

0

Grupo Grifols SA

1

1/1/1982

L'Oreal SA

0

Fujisawa Pharmaceutical Co Ltd

1

1/1/1983

Novo Industri AS

0

Connaught Biosciences Inc

1

12/1/1984

Astellas Pharma Inc

0

Eli Lilly & Co

1

1/1/1985

Green Cross Corp

0

Biogen Inc

1

1/1/1985

Biotechnology Investments Ltd

0

Immunetech Pharmaceuticals

1




然后再给每个alliance赋个id,把date补齐;同理把date和description做一遍,然后通过统一的id再merge到一块儿。
不直接把3列都convert to text再convert to table是因为在转回table的时候word只能生成2列column,3列一起转name和description就混一块儿了。

求优化

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-5 16:48