On Tue, 18 Dec 2018, Allin Cottrell wrote:
 On Tue, 18 Dec 2018, Artur T. wrote:
> Just one question for clarification. Running the following yields 
> an -- at least for me -- unexpected behaviour where series foo 
> results in a constant ("Entry_c") even though S[i] is different 
> for each i.
> 
> <hansl>
> nulldata 14000
> series foo = 1		# SET to 1
> strings S = array($nobs)
> loop i=1..$nobs -q
>     S[$i] = sprintf("Entry_%d", $i)
> endloop
> stringify(foo,S)
> print S 	# results in "Entry_1" for all obs
> 
> series foo = 2		# SET to 2
> strings S = array($nobs)
> loop i=1..$nobs -q
>     S[$i] = sprintf("Entry_%d", $i)
> endloop
> print S 	# results in "Entry_2" for all obs
> </hansl>
 Shouldn't really be unexpected.
 Per stringify(), the strings from array @S are used only as needed 
 to encode the values of the series in question. Since the series 
 you define have only one value each (i.e. they are constant) they 
 require only one string, namely S[1]. 
Oops, not quite accurate: S[2] gets used in the second case. But 
that's in line with the documentation in the chapter on 
"String-valued series" in the User's Guide. Although a string-valued 
series in principle represents an encoding that starts at 1, we 
allow for the possibility that not all the integer values are 
included in a finite sample.
Properly functioning example follows:
<hansl>
nulldata 20
series s = index
strings S = array($nobs)
loop i=1..$nobs -q
   S[i] = sprintf("Value_%d", i)
endloop
stringify(s, S)
print s --byobs
</hansl>
Allin