mergemany -- 一个灵活的命令来合并许多文件

2019-04-26  本文已影响0人  松柏林stata

Syntax

用户列出完整文件名的文件的一对一合并

mergemany 1:1 filename1 filename2..., match(varlist) [options]

用户利用文件名中的数字规则性进行文件的一对一合并,

mergemany 1:1 fileprefix, match(varlist) numerical(numlist) [options]

当前工作目录中所有文件的一对一合并

mergemany 1:1 all, match(varlist) all [options]

此语法还根据合并推广为一对多,多对一和多对多匹配

Options

match(varlist):列出执行匹配的变量 variable(s) ; 这是必需的选项。
numerical(numlist):基于文件名的数字后缀指定合并时使用;不能全部使用。
all:合并当前工作目录中的所有文件;不能与numeric(numlist)一起使用。
keep:保存当前在内存中的数据集,同时在所有filnames之间执行合并; 在这种情况下,建议使用 saving(filename)(文件名)。
saving(filename):合并生成的文件保存,并命名为filename.dta; 建议通过keep保留内存中的数据集。。
verbose:创建一个变量来标记每个单独合并的合并结果; 默认情况下变量为_merge_filename。
import(filetype):允许直接导入和合并非.dta文件。 filetype必须显示正在导入的数据类型(例如.csv,.raw)。 使用.dta文件时,不应使用此选项。
inoption(options) :允许在导入数据时指定insheet选项。 可以使用insheet中提供的任何选项。 只有在通过导入时才能使用此选项(文件类型)。

Description

mergemany是命令merge的扩展,为许多 'using' datasets 合并到一个 final dataset 提供了一种灵活的方式。mergemany能够执行合并中定义的标准合并(一对一,一对多,多对一,多对多); 必须指定其中一个匹配项。
mergemany提供了许多方法来指定要合并的文件。 文件名可以完整列出,允许在单独的目录中合并文件或没有明显的命名方案。 在文件共享公共前缀但由于后缀不相同(例如file1,file2,file3 ......)而不同的情况下,可以使用数字后缀。 在这种情况下,后缀将作为参数列出,并且必须指定选项numeric(numlist)。 最后,可以将当前工作目录中给定类型的所有文件合并到一个文件中(有关导航到所需目录的帮助,请参阅cd)。 合并目录中的所有文件时,应该包含参数all以代替文件名,并且必须指定all选项。
合并到父文件中的每个使用文件的结果匹配率显示为程序输出,但是为了包含列出每个观察的源和内容的结果变量(根据合并中的变量_merge),选项详细 必须指定。有关这些输出的更多详细信息以及这些变量所采用的值(如果已指定),请参阅cd for help in navigating to a required directory)

mergemany允许直接导入非.dta文件并一步合并。 在这种情况下,应指定选项import(filetype),其中 filetype 指的是要导入的数据类型。 这支持可以通过 insheet 命令导入的任何数据类型。 如果在导入数据时需要进一步选择 insheet(例如case),则可以使用选项 inoption(options)

Examples

执行1:1匹配合并列出完整文件名

Setup
    . webuse autosize
    . list
    . webuse autoexpense
    . list
    . webuse auto
    . list

    . mergemany 1:1 http://www.stata-press.com/data/r12/autoexpense http://www.stata-press.com/data/r12/autosize
        http://www.stata-press.com/data/r12/auto, match(make)
    . list

使用名为auto的文件夹中的所有文件执行1:1匹配合并

Setup
    . mkdir auto
    . cd auto
    . webuse autosize
    . save auto1
    . webuse autoexpense
    . save auto2
    . webuse auto
    . save auto3

    . mergemany 1:1 all, match(make) all

使用auto文件夹中的所有文件的数字规则性执行1:1匹配合并(在上面创建)

    . mergemany 1:1 auto, match(make) numerical(1(1)3)
上一篇下一篇

猜你喜欢

热点阅读