xで始まらないすべての変数に接頭辞または接尾辞を追加したいと思います。
clear
input xa xb c d
1 1 1 1
end
私はこのようなことを考えました:rename (!x)* y*
これはこの結果を与えるはずです:xa xb yc yd
。ヒントをありがとう。
foreach
ループを回避できます
. rename (`r(varlist)') (y=)
これは私の頭の中では理想的ではありませんが、頭のてっぺんから、おそらく次のようなものrenpfix
があなたに役立つかもしれません。
. clear
. input xa xb c d
xa xb c d
1. 1 1 1 1
2. end
. list
+-----------------+
| xa xb c d |
|-----------------|
1. | 1 1 1 1 |
+-----------------+
. renpfix "" y
. renpfix yx x
. list
+-------------------+
| xa xb yc yd |
|-------------------|
1. | 1 1 1 1 |
+-------------------+
ここでは、最初にすべての変数にプレフィックスを追加したため、最初の2つの変数のプレフィックスはyx
;になります。次に、最初の2つの変数yx
に戻るためにプレフィックスを置き換えました。x
別のオプションは、ds
またはfindname
(install using search findname
)を使用し、not
引数を使用して一致した変数を否定することです。
. clear
. input xa xb c d
xa xb c d
1. 1 1 1 1
2. end
. list
+-----------------+
| xa xb c d |
|-----------------|
1. | 1 1 1 1 |
+-----------------+
. ds x*, not
c d
. foreach v in `r(varlist)' {
2. rename `v' y`v'
3. }
. list
+-------------------+
| xa xb yc yd |
|-------------------|
1. | 1 1 1 1 |
+-------------------+
ds
結果をにfindname
保存して、関連する変数を特定した後で`r(varlist)'
使用できるようにします。foreach