我有一个tibble
,看起来像这样(我们叫它param_table
):
+--------+------------------+
| name | param |
+--------+------------------+
| apple | <named list [2]> |
+--------+------------------+
| orange | <named list [2]> |
+--------+------------------+
| pear | <named list [2]> |
+--------+------------------+
| banana | <named list [2]> |
+--------+------------------+
map(safely(...)...)
对具有自定义功能的不同水果的结果。param_table$param[[1]]
将返回apple的结果:$result
+-----+-------+-------+
| | alpha | beta |
+-----+-------+-------+
| 1 | 0.1 | 1.1 |
+-----+-------+-------+
| 2 | 0.2 | 1.2 |
+-----+-------+-------+
| 3 | 0.3 | 1.3 |
+-----+-------+-------+
| 4 | 0.4 | 1.4 |
+-----+-------+-------+
| 5 | 0.5 | 1.5 |
+-----+-------+-------+
| ... | ... | ... |
+-----+-------+-------+
(There are in total 10,000 rows, skipping the rest here)
$error
NULL
我正在编写一个闪亮的应用程序,需要在其中直接调用$result
中的表作为数据框。我不能像as.data.frame(param_table$param[[1]]$result)
那样做某事,因为这是单个水果的手册,并不适用于所有水果。
理想情况下,我希望最终结果看起来像这样:一个小标题,其中每个水果的参数值为df,而不是包含$result
和error
的命名列表。换句话说,我想在丢掉$result
的同时保留每个水果的$error
。
我希望小标题看起来像这样
+--------+-----------------------+
| name | param |
+--------+-----------------------+
| apple | <df[,2] [10,000 × 2]> |
+--------+-----------------------+
| orange | <df[,2] [10,000 × 2]> |
+--------+-----------------------+
| pear | <df[,2] [10,000 × 2]> |
+--------+-----------------------+
| banana | <df[,2] [10,000 × 2]> |
+--------+-----------------------+
param_table$param[[1]]
,它将为我返回苹果的结果,如下所示:+-----+-------+-------+
| | alpha | beta |
+-----+-------+-------+
| 1 | 0.1 | 1.1 |
+-----+-------+-------+
| 2 | 0.2 | 1.2 |
+-----+-------+-------+
| 3 | 0.3 | 1.3 |
+-----+-------+-------+
| 4 | 0.4 | 1.4 |
+-----+-------+-------+
| 5 | 0.5 | 1.5 |
+-----+-------+-------+
| ... | ... | ... |
+-----+-------+-------+
我应该编写一个函数进行这种转换吗?像这样:
for (i in names){
as.data.frame(param_table1[[as.numeric(which(names == i))]])
}
非常感谢您的帮助!
答案 0 :(得分:1)
您可以使用map
提取所需的组件:
param_table %>%
mutate(param = map(param, ~.x$result))