Stata 合并内存中的数据集

问题描述 投票:0回答:1

我正在使用多年来的人口普查数据。每年,数据集的结构和内容都完全相同(即向受访者提出相同的问题,并且多年来他们的答案以相同的方式列出)。我想导入多个数据集,对每个数据集应用更改,然后组合它们。

为了说明我的意思,我导入了 2018 年数据(框架标题为“cps18”)并删除了三个特定行。然后,我使用

frame change
并导入了 2019 年数据(称为“cps19”),并应用了类似的更改。当我使用
append using cps18
时,控制台返回“找不到文件 cps18。”

从我在网上找到的信息来看,

append
命令似乎用于将磁盘上的数据集与内存中的帧组合起来。但是如果内存中有两个或更多帧怎么办?有没有办法把它们结合起来?

append stata frames
1个回答
0
投票

过去的自己!您可以编写一个循环来跨多个文件执行相同的操作。假设您有 cps17.csv、cps18.csv 和 cps19.csv。我们可以编写一个循环来导入每个文件,进行必要的更改,然后追加:

  cwf default // revert to default frame

  clear 
  tempfile cpsdata
  save `cpsdata', replace empty
    
  forval y = 17/19 {
    import delimited cps`y'.csv
        
    egen newvar1 = oldvar1 + oldvar2 // sample change
    destring year, replace // sample change
        
    append using `cpsdata', force
    save `cpsdata', replace 
  }
© www.soinside.com 2019 - 2024. All rights reserved.