我的任务是从大量复杂的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"

推荐答案

我们可以使用tidyr个包中的crossing个:

tableNames <- c(seq(1:2))  
varNames <- c("A", "B")  

crossing(tableNames, varNames)
tableNames varNames
       <int> <chr>   
1          1 A       
2          1 B       
3          2 A       
4          2 B     

R相关问答推荐

R形式的一维数字线/箱形图样式图表

根据R中的另一个日期从多列中 Select 最近的日期和相应的结果

terra nearest()仅为所有`to_id`列返回NA

多个过滤器内的一个盒子在仪表板Quarto

try 将 colored颜色 编码添加到ggploly的标题中

如何识别倒排的行并在R中删除它们?

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

跨列查找多个时间报告

是否有新方法来更改Facet_WRAP(Ggplot2)中条文本的文本 colored颜色 ?

来自程序包AFEX和amp;的类/函数和NICE_TABLE&冲突

如何在PrePlot()中将多个元素设置为斜体

R -基线图-图形周围的阴影区域

创建在文本字符串中发现两个不同关键字的实例的数据框

有毒元素与表观遗传年龄的回归模型

如何使用包metaviz更改标签的小数位数?

了解nchar在列表上的意外行为

在分面的ggplot2条形图中对条形图进行排序,并省略每组未使用的系数级别

使用点图调整离散轴比例

带查找数据的FCT_REORDER.帧

如何在基数R中根据矩阵散点图中的因子给数据上色?