原本的变量名处在变量值的位置,如何重新提取变量名

源地址:首行数据 如何快速转为 变量名 ?

目录

在日常工作中,我们导入的数据常常不那么规范,如下图所示,原本的变量名处在变量值的位置,若要重新提取变量名,单个变量依次重命名显然繁琐,那么我们有什么快捷的方法呢?

原本的变量名处在变量值的位置,如何重新提取变量名

convert_top_lines

ssc install convert_top_lines

使用该命令可以将数据集中的第一、第二行观察值分别转化为变量名、变量标签。值得注意的是,
这里的数据集需符合以下两个条件:
(1)数据集中所有变量均为字符型变量;
(2)数据集原始变量名必须为“v1、v2、v3…”的形式

第二个条件太苛刻了,看来这个命令不实用。

抱歉,我上句话说错了,这个命令很实用,在使用命令convert_top_lines前,先输入一条命令renvarlab A-L\v1-v12即可。

使用命令renvarlab A-L\v1-v12后的效果:
原本的变量名处在变量值的位置,如何重新提取变量名

现在直接使用convert_top_lines命令,实现目标变量名如下:
原本的变量名处在变量值的位置,如何重新提取变量名

或者,也可加上drop选项,删除第一行观察值,使变量值更美观,效果如下:
原本的变量名处在变量值的位置,如何重新提取变量名

上述命令总结为:

import excel using auto1.xlsx, clear //数据集变化,需要重新导入、命名
renvarlab A-L\v1-v12
convert_top_lines,drop

对于原数据集的第二行观察值,若要用作变量标签,则增加选项line2labels.

因为数据库的数据导出形式通常为:第一行为变量名,第二行为变量名的说明,即标签。

我们也可通过list选项观察数据集前三行数据情况来做检查:

import excel using auto1.xlsx, clear
renvarlab A-L\v1-v12
convert_top_lines, line2labels drop list //增加drop选项不影响list输出内容

注意

convert_top_lines命令修改变量名时,会默认所有变量名小写,原本存在的大写格式都会被取代。

该命令的基本语法如下:

convert_top_lines[, line2labels list drop]

命令可单独使用,表示仅将第一行观察值作为变量名,且该行观察值在转化后的数据集中仍保留。convert_top_lines命令后添加的选项,有以下含义:
(1)line2labels:在提取第一行观察值为变量名的同时,第二行观察值作为对应的变量标签;
(2)drop:提取后删除第一行观察值,若与选项line2labels联用,则删除前两行观察值;
(3)list:列出前三行观察值,若与选项drop联用,则列出删除观察值前的数据。

上一篇:python删除文件中某一行


下一篇:delphi RTTI 反射技术(转自朝闻道博客)