【发布时间】:2018-09-07 13:14:52
【问题描述】:
我最近一直在使用 R 进行很多工作,但我对列表的经验几乎为零。所以现在我有一个列表,我真的不知道该怎么做。我有一个数据框df,它是通过应用以下函数创建的
df <- data.table(df)[, .(nm = names(.SD),fits = lapply(.SD, function(x) if(is.numeric(x)) summary(lm(y ~ x, na.action=na.omit)))), .SDcols = -1]
它由一个带有变量名称的列和一个带有该变量名称的摘要统计信息列表的列组成,如下所示:
nm fits
1 A list(call = lm(formula = y ~ x, na.action=na.omit))
2 B list(call = lm(formula = y ~ x, na.action=na.omit))
3 C list(call = lm(formula = y ~ x, na.action=na.omit))
4 D list(call = lm(formula = y ~ x, na.action=na.omit))
通过申请:
dfoutput <- lapply(df$fits, function(x) x$coefficients[c(2),])
我得到每个变量的以下示例输出:
Estimate Std. Error t value Pr(>|t|)
x -8.72283 0.68552 -12.72 <2e-16
我想做的是将dfoutput 中的每个列表转换为数据框中的一行,同时考虑变量名称nm 并最好使用列:Estimate Std. Error t value Pr(>|t|)),给我以下示例输出:
Varname Estimate Std. Error t value Pr(>|t|)
A -8.72283 0.68552 -12.72 <2e-16
B -0.72283 0.38552 -12.72 <2e-16
C -2.72283 0.28552 -12.72 <2e-16
D -1.72283 1.68552 -12.72 <2e-16
有人能帮我解决这个问题吗?
【问题讨论】: