Nau*_*aus 1 loops for-loop r stata
我确信这很简单,但我找不到将Stata中的这个简单循环转换为R的方法.
在循环中如下
forvalues i=1/8{
gen foo`i'=foo`i'.bar.1+foo`i'.bar.2
}
Run Code Online (Sandbox Code Playgroud)
其中foo's
是数字向量变量.因此,循环gen
用于创建八个新变量,每个变量是两组不同变量的总和.我不确定如何将该循环转换为R
我不是一个stata人,但看起来你正在创建一组变量,通过添加两个以相同方式命名的其他变量集(在别处创建)来区分名称中的数字.这通常不是我们在R中做事的方式,因为创建变量列表然后通过索引引用每个变量太容易了.有很多选择,但一种R方法就像
foo <- list()
for (i in 1:8){
foo[[i]] <- foo.bar.1[[i]] + foo.bar.2[[i]]
}
Run Code Online (Sandbox Code Playgroud)
R实际上有无数类型的数据容器,因此可能有许多其他更好的应用程序.
但无论如何,如果你真的想在变量名中包含数字,你可以使用assign()
和get()
函数.就像是
for (i in 1:8){
assign(paste("foo",i,sep=''),get(paste("foo",i,".bar.1",sep=''))+get(paste("foo",i,".bar.2",sep='')))
}
Run Code Online (Sandbox Code Playgroud)