在R中展平列表时维护名称
下面是一些虚拟数据和代码。我想我正试图做与之完全相反的事情 经过一段时间的操纵,我留下了一张非常难看的名单。当我打开此列表时,存储在名称中的变量/国家/地区编码完全丢失 我希望有一个数据框架,其中国家作为行名称,类别作为列名 任何指点都将不胜感激在R中展平列表时维护名称,r,list,matrix,names,R,List,Matrix,Names,下面是一些虚拟数据和代码。我想我正试图做与之完全相反的事情 经过一段时间的操纵,我留下了一张非常难看的名单。当我打开此列表时,存储在名称中的变量/国家/地区编码完全丢失 我希望有一个数据框架,其中国家作为行名称,类别作为列名 任何指点都将不胜感激 set.seed(1) CVtest <- list() for (i in c("AT","BE","DE")) { #For all countries # Test all categories together CVtes
set.seed(1)
CVtest <- list()
for (i in c("AT","BE","DE")) { #For all countries
# Test all categories together
CVtest[[i]][["EveryCat"]] <- sample(seq(0, 1, by=0.01), 1)
for (j in c("All", "Sub", "Key", "Sel")) { # Test each category
CVtest[[i]][[j]] <- sample(seq(0, 1, by=0.01), 1)
}
}
期望输出
> class(CVtest)
[1] "data.frame"
> CVtest
EveryCat All Sub Key Sel
AT 0.26 0.37 0.57 0.91 0.20
BE 0.90 0.95 0.66 0.63 0.06
DE 0.20 0.17 0.69 0.38 0.77
你的问题仍然不清楚(见我的最新评论)。我只能猜测你想要什么。你能试试吗
x <- purrr::transpose(CVtest)
y <- rlist::list.stack(x)
rownames(y) <- names(x)
y
x你不能举个简单的例子吗?您提供了一些代码,但它很长,需要安装一些软件包。对不起,应该是这样。谢谢你的耐心!您的帖子中没有提供df
。并且不使用循环的索引i
。另外,您能显示所需的输出吗?再次抱歉,i
确实是要替换df
。。。忘了那一点。现在修复了包括所需输出的代码和问题的其他部分;我相信现在已经很清楚了。谢谢你的耐心。您的解决方案完成了这项工作,我希望将国家作为行,所以我只添加了t(y)。非常感谢你!!
x <- purrr::transpose(CVtest)
y <- rlist::list.stack(x)
rownames(y) <- names(x)
y