按 list() 变量名而不是 R 中的索引重命名

标签 r list variables

我正在使用 for 循环对项目的 list() 进行回归,我想用该变量的名称而不是其索引替换对给定列表输入的引用。例如:

frame <- data.frame(y = rnorm(10), x1 = rnorm(10), x2 = rnorm(10), x3 = rnorm(10) ) 
x.list <- list(frame$x1,frame$x2,frame$x3)  
fit <- list()

for(i in 1:length(x.list)){ fit[[i]] <- summary(lm(frame$y ~ x.list[[i]]))}         
fit

我希望适合的每个项目都引用“x1”、“x2”、“x3”而不是“x.list[[i]]”。感谢您对此有任何想法。

最佳答案

不要定义x.list,只是遍历名称:

fit <- vector("list",3)
for ( i in c("x1","x2","x3") ) fit[[i]] <- summary(lm(frame$y ~ frame[[i]]))

改为保存 lm您可能需要的不仅仅是摘要,所以只需保存 lm: p>

xs     <- c("x1","x2","x3")
xs     <- setNames(xs,xs)
fit_lm <- lapply(xs,function(i)lm(frame$y ~ frame[[i]]))

你可以用lapply(fit_lm,summary)查看summary,也可以用

查看系数
sapply(fit_lm,`[[`,"coefficients")
#                    x1         x2          x3
# (Intercept) 0.1417501  0.2974165  0.25085281
# frame[[i]]  0.2318912 -0.1468433 -0.08783857

关于按 list() 变量名而不是 R 中的索引重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30134397/

相关文章:

javascript - 变量名中的变量?循环说变量?

用于滞后回归的 R data.table 分组

python - 按项目获取列表列表中的唯一条目

c# - 如何遍历作为列表的 session 对象

python - 在 Python 2 中检查字符串是否以小数结尾

node.js - Node js http请求: Variable in Options

r - 从具有指定样本量的组中进行简单随机抽样

r - 如何从列表中获取变量名

r - R:用逗号将变量列拆分为多个(不平衡)列

c - c sscanf 中的段错误