Formatting Stata-旋转整形
我正在重塑一个文件,想知道Stata是如何处理以下格式的文件的。例如,使用来自比赛的数据Formatting Stata-旋转整形,formatting,stata,reshape,Formatting,Stata,Reshape,我正在重塑一个文件,想知道Stata是如何处理以下格式的文件的。例如,使用来自比赛的数据 Race_Number Race_Date Racer_1_Name Racer_2_Name Racer_3_Name Racer_1_Position Racer_2_Position Racer_3_Position 是否可以将此转换为以下内容 Race_Number Race_Date Racer_Name Racer Position 出于好奇,
Race_Number Race_Date Racer_1_Name Racer_2_Name Racer_3_Name Racer_1_Position Racer_2_Position Racer_3_Position
是否可以将此转换为以下内容
Race_Number Race_Date Racer_Name Racer Position
出于好奇,我创建了上面的数据集,但
重塑
不起作用,我不得不手动操作 我们感谢您准确地向我们展示您的输入/输出。诸如此类
…重塑不起作用,我不得不手动操作
不要告诉我们太多
此外,完整的玩具数据集也会有所帮助。我想你的意思是Race\u Date
在哪里键入Race Date
(第一行代码)和Racer\u Position
在哪里键入Racer Position
(第二行代码)
你可以试试
clear all
set more off
*----- example dataset -----
input ///
Race_Num Race_Dat str5(R1_Name R2_Name R3_Name) R1_Pos R2_Pos R3_Pos
1 5 "Al" "Bob" "Carl" 3 2 1
2 7 "Al" "Bob" "Carl" 3 1 2
3 15 "Al" "Bob" "Carl" 1 2 3
end
format Race_Dat %td
list
*----- what you want -----
forvalues i = 1/3 {
rename R`i'_Name Nam_R`i'
rename R`i'_Pos Pos_R`i'
}
list
reshape long Pos_R Nam_R, i(Race_Num) j(Racer)
order Race_Num Race_Dat
list, sepby(Race_Num)
我所做的只是在重塑
之前更改变量名
更好的方法是使用@
,然后不需要重命名变量:
reshape long R@_Pos R@_Name, i(Race_Num) j(Racer)
正如@Roberto Ferrer所言,这是一个糟糕的问题。您未向我们显示的代码“不起作用”。事实上,根据标准标准,这是离题的:“询问代码的问题必须表明对正在解决的问题的最低理解。包括尝试的解决方案、为什么不起作用以及预期结果。”(特别是,“比赛日期”不是一个合法的变量名称。)