Good Morning,

I am looking to rename my variables so that the numeric value is one less than what it currently is. For example, q141 becomes q140 and so on.

I have just split a variable and produced the following after using a reshape code listed at the bottom of this post:

. list q141 q142 q143 q144 q145 q146 q147 q148 q149 q1410 in 170/175

+----------------------------------------------------------------------+
| q141 q142 q143 q144 q145 q146 q147 q148 q149 q1410 |
|----------------------------------------------------------------------------------------|
170. | 3 5 9 |
171. | 2 3 4 5 6 9 |
172. | 0 |
173. | 1 5 9 |
174. | 6 |
|----------------------------------------------------------------------------------------|
175. | 7 9 |
+-----------------------------------------------------------------------------------------+

My goal is:
+----------------------------------------------------------------------+
| q140 q141 q142 q143 q144 q145 q146 q147 q148 q149 |
|----------------------------------------------------------------------|
170. | 3 5 9 |
171. | 2 3 4 5 6 9 |
172. | 0 |
173. | 1 5 9 |
174. | 6 |
|---------------------------------------------------------------------------------------|
175. | 7 9 |
+----------------------------------------------------------------------------------------+

The 0 value is a renamed blank value. If I try to rename the blank value to 10 instead of 0, the 10 value is put under q142 and the 2 values put under column q143, so changing the name of my blank value does not appear to be a simple answer.

I am wondering if a loop may work. I tried rename q14# q14(#-1) which yielded an unbalanced parenthesis error message. Any thoughts?

Thanks in advance!

--------------------------------------------------------------------------------------------------
More details:

I am using StataSE 15 (64 bit) on Windows 10

The observations listed above are just a snippet of a 500 obs data set.

Full code used:
/*to check how blank appears initially*/
list q14 in 170/175
replace q14="0" if q14==""
/*to see how blank has been converted to 0*/
list q14 in 170/175
split q14, p(,)
rename q14 q14orig
gen id = _n
reshape long q14, i(id)
replace q14 = trim(q14)
egen group = group(q14)
drop if missing(group)
drop _j
reshape wide q14, i(id) j(group)
drop id
/*to check how values have been distributed*/
list q141 q142 q143 q144 q145 q146 q147 q148 q149 q1410 in 170/175