我正在尝试迭代R中的列表并遇到障碍...... 目标是将这些数据写入data.frame,然后我将使用每个Tab1,Tab2写入Excel电子表格(似乎是使用xlsx库从R创建Excel电子表格的最简单方法)对应于工作簿中的工作表的等等。
使用
dput(MyRObject,file="", control=c("useSource"))
在R中我有一个看起来像这样的结构(根据SO建议没有清理)....
list(tab1 = list(PData = c(0.8, 0.9, 0.95, 0.995, 0.24661,
0.17913, 0.13058, 0.04435, 0.579631613406504, 0.993273399970982,
1.38978824245787, 2.35062458463194), NData = c(0.8, 0.9, 0.95,
0.995, 0.75339, 0.82087, 0.86942, 0.95565, 0.579631613406505,
0.993273399970982, 1.38978824245787, 2.35062458463194)), tab2 = list(
PData = c(0.8, 0.9, 0.95, 0.995, 0.2, 0.14286, 0.1029,
0.03423, 0.8496, 1.28071636787584, 1.65931628110111, 2.48854182345497
), NData = c(0.8, 0.9, 0.95, 0.995, 0.8, 0.85714, 0.8971,
0.96577, 0.849600000000001, 1.28071636787583, 1.65931628110111,
2.48854182345497)), tab3 = list(PData = c(0.8, 0.9, 0.95,
0.995, 0.14286, 0.1, 0.07104, 0.02308, 1.28071636787584, 1.6896,
2.01379602569623, 2.64732002458351), NData = c(0.8, 0.9, 0.95,
0.995, 0.85714, 0.9, 0.92896, 0.97692, 1.28071636787584, 1.6896,
2.01379602569622, 2.64732002458351)))
我试图强迫每个" Tab"到data.frame,所以我的电子表格中的每个标签都是这样的..
将矢量格式化为3列后,Tab1的工作表将如下所示
PData
Sensitivity Optimal Relative
0.8 0.24661 0.57963
0.9 0.17913 0.99327
0.95 0.13058 1.3898
0.995 0.04435 2.3506
NData
Sensitivity Optimal Relative
0.8 0.75339 0.57963
0.9 0.82087 0.99327
0.95 0.86942 1.3898
0.995 0.95565 2.3506
等表2,Tab3 ......
我已经得到了部分迭代,就像这样......
使用这样的函数....
nametree(myListData)
nametree <- function(X, prefix = ""){
if( is.list(X) )
for( i in seq_along(X) ) {
cat( prefix, names(X)[i], "\n", sep="" )
nametree(X[[i]], paste0(prefix, "--->"))
}
}
得到了我......
tab1
--->PData
--->NData
tab2
--->PData
--->NData
如何从dput访问PData和NData的向量?我确信这是一种更简单的方法,但我缺乏R知识会让这很困难。