在其他语言中这是一个相当简单的事情,很可能在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循环以便它生成如下内容:
ln_income1.haar <- mra(ln_income1, "haar", 3, "modwt")
names(ln_income1.haar) <- c("d1", "d2", "d1")
ln_income2.haar <- mra(ln_income2, "haar", 3, "modwt")
names(ln_income2.haar) <- c("d1", "d2", "d3")
...
ln_inome100.haar <- mra(ln_inome100, "haar", 3, "modwt")
names(ln_inome100.haar) <- c("d1", "d2", "d3")
谢谢! /佩尔
答案 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