我有一个小小的 list :

my_list <- list(time = structure(c(0, 1), dim = 2:1, dimnames = list(c("Pre", 
"Post"), "Post")), treatment = structure(c(0, 1), dim = 2:1, dimnames = list(
    c("Control", "Treatment"), "Treatment")))

# that gives me: 
$time
     Post
Pre     0
Post    1

$treatment
          Treatment
Control           0
Treatment         1

我想将其转换为数据帧,如下所示:

enter image description here

I have tried everything from this link, but it did not give me my desired df:
Convert a list to a data frame

推荐答案

以下是我们如何解决此任务的函数:

final_df <- do.call(cbind, lapply(names(my_list), function(name) {
  df <- as.data.frame(my_list[[name]])
  transformed_df <- apply(df, 2, function(y) paste(names(y), y, sep = " "))
  colnames(transformed_df) <- paste("Levels of", name)
  transformed_df
}))

final_df
  Levels of Time Levels of Treatment
1          Pre 0           Control 0
2         Post 1         Treatment 1

下面是一步一步的相同过程:

df1 <- as.data.frame(my_list[1]$time)
df2 <- as.data.frame(my_list[2]$treatment)

transformed_df1 <- apply(df1, 2, function(x) paste(names(x), x, sep = " "))
transformed_df1 <- as.data.frame(transformed_df1)
                    
transformed_df2 <- apply(df2, 2, function(x) paste(names(x), x, sep = " "))
transformed_df2 <- as.data.frame(transformed_df2)

final_df <- cbind(transformed_df1, transformed_df2)
colnames(final_df) <- c("Levels of Time", "Levels of Treatment")
final_df      

R相关问答推荐

按块将载体转换为矩阵-reshape

R Lubridate:舍入/快照日期时间到一天中最近的任意时间?

在R底座中更改白天和夜晚的背景 colored颜色

如果列中存在相同的字符串,则对行值进行总和

R等效于LABpascal(n,1)不同的列符号

使用case_match()和char数组重新编码值

是否可以创建一个ggplot与整洁判断的交互作用

为什么舍入POSIXct会更改能力以匹配等效的POSIXct?

如何在R forestplot中为多条垂直线分配唯一的 colored颜色 ?

从圆到R中的多边形的标绘雷达图

识别连接的子网(R-igraph)

创建新列,其中S列的值取决于该行S值是否与其他行冗余

将文本批注减少到gglot的y轴上的单个值

如何在R中创建这些列?

roxygen2正在处理太多的文件

策略表单连接两个非常大的箭头数据集,而不会 destruct 内存使用

汇总数据:在跨越()all_of()Dynamic_list_of_vars=>;所选内容不能有缺失值的汇总()中出错

如何在一个GGPLATE中绘制多个灰度平滑?

从多行中 Select 最小值

如何将数据框压缩为更宽,同时将行输入保持为行输入,而不是R中的列名?