我是学习R.的stata用户 我想将以下stata函数转换为R.基本上它的作用是使用带有循环函数的模式的名称重新编码多个变量。
我有这些变量名称:a1cbf a2cbf a3cbf a4cbf ....... a25cbf
Stata语法:
forvalue i=1/25{
recode a`i'cbf (1=99) (2=88) (3=1), gen(cig`i')
}
这就是用语言表达的意思:每次更换“i'价值从1到25.
答案 0 :(得分:1)
假设您想要使用不同数字的向量替换变量中的数字。
如果' v1'是原始变量的向量
v1 <- paste0('a', 1:25, 'cbf')
和对应于&#39; v1&#39;的新数字向量元素是
set.seed(29)
v2 <- sample(100, 25, replace=FALSE)
我们可以使用paste
来获取一个新的变量向量,以后可以将其分配给数据集的列名/行名。
paste0('a', v2, 'cbf')
或者如果前缀和后缀部分不相同,那么,
paste0(sub('[0-9]+.*', '', v1), v2, sub('.*[0-9]+', '', v1))
#[1] "a10cbf" "a24cbf" "a11cbf" "a32cbf" "a57cbf" "a9cbf" "a78cbf" "a81cbf"
#[9] "a12cbf" "a22cbf" "a89cbf" "a35cbf" "a27cbf" "a55cbf" "a16cbf" "a71cbf"
#[17]"a56cbf" "a31cbf" "a72cbf" "a30cbf" "a54cbf" "a49cbf" "a76cbf" "a94cbf"
#[25] "a48cbf"