p***r 发帖数: 920 | 1 要反复调用不同的 variables to fit the regression model, it's like
glm(y~x_i, data)
i=1,2,.....n, (n>30) 名字一般都很长
但是如果用
i=i+1
names(data)[i]
可以出来变量名,但是放到glm 里面就不对,请问这个问题有什么好的办法么?谢谢啦 | D******n 发帖数: 2836 | 2 check out formula, as.character and paste functions
【在 p***r 的大作中提到】 : 要反复调用不同的 variables to fit the regression model, it's like : glm(y~x_i, data) : i=1,2,.....n, (n>30) 名字一般都很长 : 但是如果用 : i=i+1 : names(data)[i] : 可以出来变量名,但是放到glm 里面就不对,请问这个问题有什么好的办法么?谢谢啦
| s*****n 发帖数: 2174 | 3 这个属于稍微有点点高级的R应用了, 光这么说, 估计LZ未必能够搞定.
我给个example吧, 这里应该包含所有需要的东西了.
for (i in 1:10){
var_name <- paste("X_", i, sep = "")
assign(var_name, rnorm(100))
y_name <- paste("Y_", i, sep = "")
assign(y_name, 3 + 5 * get(var_name) + rnorm(100))
formula_name <- as.formula(paste(y_name, " ~ ", var_name, sep = ""))
print(formula_name)
print(lm(formula_name))
}
【在 D******n 的大作中提到】 : check out formula, as.character and paste functions
| s*r 发帖数: 2757 | 4 不能用 y~ data[,i]?
【在 p***r 的大作中提到】 : 要反复调用不同的 variables to fit the regression model, it's like : glm(y~x_i, data) : i=1,2,.....n, (n>30) 名字一般都很长 : 但是如果用 : i=i+1 : names(data)[i] : 可以出来变量名,但是放到glm 里面就不对,请问这个问题有什么好的办法么?谢谢啦
| b*****n 发帖数: 685 | | p***r 发帖数: 920 | 6 谢谢咯~~我回去试一下~~
【在 s*****n 的大作中提到】 : 这个属于稍微有点点高级的R应用了, 光这么说, 估计LZ未必能够搞定. : 我给个example吧, 这里应该包含所有需要的东西了. : for (i in 1:10){ : var_name <- paste("X_", i, sep = "") : assign(var_name, rnorm(100)) : y_name <- paste("Y_", i, sep = "") : assign(y_name, 3 + 5 * get(var_name) + rnorm(100)) : formula_name <- as.formula(paste(y_name, " ~ ", var_name, sep = "")) : print(formula_name) : print(lm(formula_name))
| p***r 发帖数: 920 | 7 刚才试了一下,好像不大用得起来啊,给出的结果是这样的
> i=1
> f <- as.formula(paste("y ~ ", names(treated)[i], ",data=treated",
sep=""))
Error in parse(text = x) : unexpected ',' in "col.one.up ~ Gender,"
高手帮忙分析一下
【在 s*****n 的大作中提到】 : 这个属于稍微有点点高级的R应用了, 光这么说, 估计LZ未必能够搞定. : 我给个example吧, 这里应该包含所有需要的东西了. : for (i in 1:10){ : var_name <- paste("X_", i, sep = "") : assign(var_name, rnorm(100)) : y_name <- paste("Y_", i, sep = "") : assign(y_name, 3 + 5 * get(var_name) + rnorm(100)) : formula_name <- as.formula(paste(y_name, " ~ ", var_name, sep = "")) : print(formula_name) : print(lm(formula_name))
| p***r 发帖数: 920 | 8 搞定了,谢谢
【在 p***r 的大作中提到】 : 谢谢咯~~我回去试一下~~
|
|