在函数内的循环内定义变量
Defining a variable inside a loop inside a function
所以我有一个任务,如果观察到的变量有测量误差,我必须证明回归系数收敛到某个值。这个想法是根据观察的数量以及变量的标准偏差来显示收敛。
我构建了以下函数,该函数应根据观察次数创建一个具有回归系数的矩阵。在后面的步骤中,我想在情节中展示它,然后在闪亮的网络应用程序中展示它。
函数是:
Deviation <- function(N, sd_v = 1, sd_u = 1, sd_w = 1){
b_1 <- 1
b_2 <- 2
for ( j in length(1:N)){
v <- rnorm(j, mean = 0, sd_v)
u <- rnorm(j, mean = 0, sd_u)
w <- rnorm(j, mean = 0, sd_w)
X <- u + w
Y <- b_1 + b_2 * X + v
Reg <- lm(Y~X)
if (j==1) {
Coeffs <- matrix(Reg$coefficients)
} else {
Coeffs <- rbind(Coeffs, Reg$coefficients)
}
}
Coeffs <- as.data.frame(Coeffs)
return(Coeffs)
}
Deviation(100)
我总是收到未定义变量 Coeffs 的错误...
提前致谢!
正如讨论中所指出的,一种可能的解决方案是将 length(1:N)
更改为简单的 1:N
,如下所示。这对我有用。
Deviation <- function(N, sd_v = 1, sd_u = 1, sd_w = 1){
b_1 <- 1
b_2 <- 2
for ( j in 1:N){
v <- rnorm(j, mean = 0, sd_v)
u <- rnorm(j, mean = 0, sd_u)
w <- rnorm(j, mean = 0, sd_w)
X <- u + w
Y <- b_1 + b_2 * X + v
Reg <- lm(Y~X)
if (j==1) {
Coeffs <- matrix(Reg$coefficients)
} else {
Coeffs <- rbind(Coeffs, Reg$coefficients)
}
}
Coeffs <- as.data.frame(Coeffs)
return(Coeffs)
}
其次是...
Deviation(100)
所以我有一个任务,如果观察到的变量有测量误差,我必须证明回归系数收敛到某个值。这个想法是根据观察的数量以及变量的标准偏差来显示收敛。
我构建了以下函数,该函数应根据观察次数创建一个具有回归系数的矩阵。在后面的步骤中,我想在情节中展示它,然后在闪亮的网络应用程序中展示它。
函数是:
Deviation <- function(N, sd_v = 1, sd_u = 1, sd_w = 1){
b_1 <- 1
b_2 <- 2
for ( j in length(1:N)){
v <- rnorm(j, mean = 0, sd_v)
u <- rnorm(j, mean = 0, sd_u)
w <- rnorm(j, mean = 0, sd_w)
X <- u + w
Y <- b_1 + b_2 * X + v
Reg <- lm(Y~X)
if (j==1) {
Coeffs <- matrix(Reg$coefficients)
} else {
Coeffs <- rbind(Coeffs, Reg$coefficients)
}
}
Coeffs <- as.data.frame(Coeffs)
return(Coeffs)
}
Deviation(100)
我总是收到未定义变量 Coeffs 的错误...
提前致谢!
正如讨论中所指出的,一种可能的解决方案是将 length(1:N)
更改为简单的 1:N
,如下所示。这对我有用。
Deviation <- function(N, sd_v = 1, sd_u = 1, sd_w = 1){
b_1 <- 1
b_2 <- 2
for ( j in 1:N){
v <- rnorm(j, mean = 0, sd_v)
u <- rnorm(j, mean = 0, sd_u)
w <- rnorm(j, mean = 0, sd_w)
X <- u + w
Y <- b_1 + b_2 * X + v
Reg <- lm(Y~X)
if (j==1) {
Coeffs <- matrix(Reg$coefficients)
} else {
Coeffs <- rbind(Coeffs, Reg$coefficients)
}
}
Coeffs <- as.data.frame(Coeffs)
return(Coeffs)
}
其次是...
Deviation(100)