R 如何将一个列表转换成一个包含重新排列的和单独命名的列的复杂表?
我有一个包含30个数据帧的列表(称为list),所有数据帧都有单独的名称(以公司命名),并且由回归的输出组成。所有数据帧都如下所示:R 如何将一个列表转换成一个包含重新排列的和单独命名的列的复杂表?,r,R,我有一个包含30个数据帧的列表(称为list),所有数据帧都有单独的名称(以公司命名),并且由回归的输出组成。所有数据帧都如下所示: term estimate std.error statistic p.value (Intercept) 0.0012 0.000 2.84 0.00 x$Return 0.8119 0.055 14.49 1.08 x$ReturnDum 0.2989 0.083 0.10
term estimate std.error statistic p.value
(Intercept) 0.0012 0.000 2.84 0.00
x$Return 0.8119 0.055 14.49 1.08
x$ReturnDum 0.2989 0.083 0.10 0.05
Firm (Intercept) x$Return x$ReturnDum
Firm1 0.0012 0.8119 0.2989
(0.000)*** (0.055) (0.083)**
Firm2 0.0242 0.2359 0.0239
(0.000)*** (0.050)** (0.909)
...
对于我的输出,我需要一个带有回归表的(pdf或png)文件,该回归表包含上述所有输出。该表应如下所示:
term estimate std.error statistic p.value
(Intercept) 0.0012 0.000 2.84 0.00
x$Return 0.8119 0.055 14.49 1.08
x$ReturnDum 0.2989 0.083 0.10 0.05
Firm (Intercept) x$Return x$ReturnDum
Firm1 0.0012 0.8119 0.2989
(0.000)*** (0.055) (0.083)**
Firm2 0.0242 0.2359 0.0239
(0.000)*** (0.050)** (0.909)
...
基本上,它应该包含四列(称为Firm,(Intercept),x$Return和x$ReturnDum)和30行,每个Firm一行。每行应包含公司名称(在公司下)、估计值和每个剩余列的标准误差值(最好与显著性星星一起-p.value<0.01时为3颗星,p.value<0.05时为2颗星,p.value<0.1时为1颗星,以上所有内容均无星星)
我还没有弄明白如何将我的列表转换成这种表格,如果有任何帮助,我将不胜感激,因为我仍然是R的初学者!谢谢。我们可以使用
map
从purr
循环列表
,当p.value
小于0.25时,通过连接“***”
,将数据帧列“std.error”变为格式
字符串,或者以字符类型返回该列(case\u当检查类型时),选择感兴趣的列,转置(t
),转换为data.frame,并基于列表的名称创建一个id列“Firm”(默认情况下,如果没有名称,则添加序号)。请注意,map
返回一个列表
,而后缀\u df
通过绑定列表
元素的行将其转换为单个data.frame输出
library(tidyverse)
map_df(lst1, ~
.x %>%
mutate(std.error = case_when(p.value < 0.05 ~
str_c("(", std.error, ")", "***"),
TRUE ~ as.character(std.error)),
estimate = round(estimate, 3)) %>%
select(estimate, std.error) %>%
t %>%
as.data.frame , .id = 'Firm')
为了避免以后的麻烦,请不要将列表称为“列表”!列表中没有***
和p.value
sync@akrun抱歉,这只是重新排列了我的数据,但它仍然在列表中,并且不是我需要的格式…@User2010S使用map\u df
而不是map
请显示您的代码结果以供参考a与OP的期望值进行比较。谢谢。@User2010S您可以在t
步骤之前使用select
。更新了post@akrun太棒了,我在中场休息时改了。非常感谢你的帮助!!!