for循环(可能需要一些替换变量)

时间:2015-07-06 22:30:33

标签: r for-loop

在其他语言中这是一个相当简单的事情,很可能在R中,但我是R的新手,所以非常感谢帮助。

我有一个带有后缀1,2,...,100的100个变量,并希望为每个变量和其中一个运行相同的命令。

我想使用一些替换变量或一些for循环来循环并为以下(“数字”)变量运行相同的命令:

ln_income1
ln_income2
ln_income3
...
ln_income99
ln_income100

让我们只调用替换变量{replace}(即使我知道我不能称之为),并将其循环到1,2,...,100 in:

ln_income{replace}.haar <- mra(ln_income{replace}, "haar", 3, "modwt")
names(ln_income{replace}.haar) <- c("d1", "d2", "d3")

如何运行for for循环以便它生成如下内容:

(第1轮):

ln_income1.haar <- mra(ln_income1, "haar", 3, "modwt")
names(ln_income1.haar) <- c("d1", "d2", "d1")

(第2轮):

ln_income2.haar <- mra(ln_income2, "haar", 3, "modwt")
names(ln_income2.haar) <- c("d1", "d2", "d3")

...

(然后第100轮相同)

ln_inome100.haar <- mra(ln_inome100, "haar", 3, "modwt")
names(ln_inome100.haar) <- c("d1", "d2", "d3")

谢谢! /佩尔

1 个答案:

答案 0 :(得分:0)

感谢慷慨和优秀的答案,但我认为d1,d2,d3被误解(因为我没有意识到d1,d2,d3 ......通常用于表示不同的数据帧)。在我目前的初学者技能水平,我完全可以使用任何有效的东西。

实际上,d1,d2,d3是“数字”小波分解变量(即每个“数字”变量的不同小波时标变量)。

ln_income1中有3个(d1,d2,d3),ln_income2等中有3个(d1,d2,d3),......,ln_income100中的3个(d1,d2,d3)。< / p>

如果我向你提供我正在使用的代码(这里有工资变量),也许这对每个人来说都是最简单的。

在导入的Stata文件emilija3.dta中,我有变量wage1,wage2,...,wage100。

为了更清楚,我在d1,d2和d3中加了一个后缀,即d1_wage1,d2_wage1,d3_wage1,d1_wage2,d2_wage2,d3_wage2 ...... d1_wage100,d2_wage100,d3_wage100。< / p>

所有这些小波变换的“数字”都可以保存在同一个数据框中。也就是说,这只是每个变量的不同时间尺度。

这是我想要做的事情(这次是为了工资,而不是ln_income):

   # wage1
   library(foreign)
   edata <- read.dta("c://test//emilija3.dta")
   wage1=edata$wage1
   library(waveslim)
   wage1.haar <- mra(wage1, "haar", 3, "modwt")
   names(wage1.haar) <- c("d1", "d2", "d3")
   d1_wage1=wage1.haar$d1
   d2_wage1=wage1.haar$d2
   d3_wage1=wage1.haar$d3
   d1_wage1
   d2_wage1
   d3_wage1
   ####################
   # wage2
   library(foreign)
   edata <- read.dta("c://test//emilija3.dta")
   wage2=edata$wage2
   library(waveslim)
   wage2.haar <- mra(wage2, "haar", 3, "modwt")
   names(wage2.haar) <- c("d1", "d2", "d3")
   d1_wage2=wage2.haar$d1
   d2_wage2=wage2.haar$d2
   d3_wage2=wage2.haar$d3
   d1_wage2
   d2_wage2
   d3_wage2
   ####################
   # wage3
   library(foreign)
   edata <- read.dta("c://test//emilija3.dta")
   wage3=edata$wage3
   library(waveslim)
   wage3.haar <- mra(wage3, "haar", 3, "modwt")
   names(wage3.haar) <- c("d1", "d2", "d3")
   d1_wage3=wage3.haar$d1
   d2_wage3=wage3.haar$d2
   d3_wage3=wage3.haar$d3
   d1_wage3
   d2_wage3
   d3_wage3
   ####################
   #...
   #...
   #...
   ####################
   # wage100
   library(foreign)
   edata <- read.dta("c://test//emilija3.dta")
   wage100=edata$wage100
   library(waveslim)
   wage100.haar <- mra(wage100, "haar", 3, "modwt")
   names(wage100.haar) <- c("d1", "d2", "d3")
   d1_wage100=wage100.haar$d1
   d2_wage100=wage100.haar$d2
   d3_wage100=wage100.haar$d3
   d1_wage100
   d2_wage100
   d3_wage100
   ####################

是否存在可以解决此问题的循环(或者更优雅的东西),以便我不需要为每个变量执行100次这样的操作?

非常感谢R的初学者。我并不关心“程序”的速度。

欢迎所有答案!

P