使用して考えると、あなたは変数名を与えることはありません。したがって、これは、最小で完全で検証可能な例には及ばない。 https://stackoverflow.com/help/mcveを参照してください。ただし、この方法が役立ちます。私は明示的に観測をループしません(行ではなく、Stataはスプレッドシートではありません)。
_n
ここ
* Example generated by -dataex-. To install: ssc install dataex
clear
input str6 v1 str7 v2 str5 v3 str3(v4 v5) str4 v6 str2 v7
"ZARA." "cotton." "35." "28." "27." "350." "0"
"" "125." "3200." "1." "5." "32." "41"
"Mango." "nylon." "35." "27." "28." "320." "0"
"" "125." "3050." "1." "5." "33." "40"
end
quietly forval j = 8/13 {
local i = `j' - 6
gen v`j' = v`i'[_n+1] if mod(_n, 2) == 1
}
drop if mod(_n, 2) == 0
list
+---------------------------------------------------------------------------+
1. | v1 | v2 | v3 | v4 | v5 | v6 | v7 | v8 | v9 | v10 | v11 |
| ZARA. | cotton. | 35. | 28. | 27. | 350. | 0 | 125. | 3200. | 1. | 5. |
|---------------------------------------------------------------------------|
| v12 | v13 |
| 32. | 41 |
+---------------------------------------------------------------------------+
+---------------------------------------------------------------------------+
2. | v1 | v2 | v3 | v4 | v5 | v6 | v7 | v8 | v9 | v10 | v11 |
| Mango. | nylon. | 35. | 27. | 28. | 320. | 0 | 125. | 3050. | 1. | 5. |
|---------------------------------------------------------------------------|
| v12 | v13 |
| 33. | 40 |
+---------------------------------------------------------------------------+
は1つのアップを実行している観測数です。
mod(_n, 2)
は、観測数を2で割った余りであり、奇数の場合は1、偶数の場合は0です。
destring
文字列は何でもかまいませんが数値である必要があります。
EDITこれを行う別の方法がありますが、すべての変数が文字列であることが条件です。
clear
input str6 v1 str7 v2 str5 v3 str3(v4 v5) str4 v6 str2 v7
"ZARA." "cotton." "35." "28." "27." "350." "0"
"" "125." "3200." "1." "5." "32." "41"
"Mango." "nylon." "35." "27." "28." "320." "0"
"" "125." "3050." "1." "5." "33." "40"
end
gen long id = _n
gen odd = mod(_n, 2)
reshape long v, i(id) j(varno)
replace id = ceil(id/2)
replace varno = varno + 6 if !odd
drop if missing(v)
drop odd
reshape wide v, i(id) j(varno)
スペルはStataです。 30年以上の間、STATAではありませんでした。 –