我的任务是从大量复杂的XML Esri Workspace文件中收集表名、分组变量、变量名和变量值.在最基本的层面上,我在迭代我能够生成的包含分组变量的列表时遇到了困难,这种方法重复了分组变量的名称和值.
因此,对于表名(table 1, table 2)
的列表以及变量名(A, B)
和值(1, 2)
的列表,我希望将如下所示的数据框组合在一起:
TABLE NAME VALUE
table 1 A 1
table 1 B 2
table 2 A 1
table 2 B 2
该方法需要足够灵活,以适应跨文件的不同长度的多层组.
最简单的形式是包含两个表名和两个变量名的列表:
以下是我使用for循环来完成此操作的最好try .相反,它单独循环每个列表,而不是重复表名,将每个变量名分组:
tableNames <- c(seq(1:2))
varNames <- c("A", "B")
results <- cbind(rep(0, length(tableNames) + length(varNames)), 0)
for(i in seq_along(tableNames)){
results3[i, 1] <- tableNames[i]
for(j in seq_along(varNames)){
results3[i, 2] <- varNames[j]
}
}
results
....[,1] [,2]
[1,] "1" "B"
[2,] "2" "B"
[3,] "0" "0"
[4,] "0" "0"
我希望结果是这样的:
....[,1] [,2]
[1,] "1" "A"
[2,] "1" "B"
[3,] "2" "A"
[4,] "2" "B"