引用R中的行/列值-要在第二个表中计数

时间:2018-10-31 20:56:37

标签: r

我在R工作 我想知道如何单独引用一列的所有值而不将其全部写入。我想用它根据第一个表的行上的值对第二个表的各个列求和/计数。

Table1:
|columnA |  columnB|
|11      |         |
|12      |         |
|13      |         |

Table2:
|columnA |  columnC|
|11      |    5    |    
|11      |    5    |
|11      |    6    |
|12      |    1    |
|12      |    1    |
|13      |    5    |

Output Table:
|Table1:
|columnA  | columnB|
|11       |    16  |
|12       |    2   |
|13       |    5   |  

我尝试过以下代码:

Table1$columnB <- length(subset(Table2,Table2$columnA == Table1$columnA)$ColumnA)

显然这是行不通的,但是我想调用每一行的值,而不是在columnA中写出每个引用的值(我需要填写很多行和列)

此操作的主要焦点是在填充下一列中的值时引用表第一列中的值。

我显然可以联接或聚合以获得所需的值,但是我的数据表是200行乘25列,所以我想要一个代码来填充每一列,以引用另一列中该行的值。 (如果这是excel,我将编写一个vlookup或index(match())函数并将其向下拖动到该列中以引用该行的单元格。但是我不知道是否可以在R中完成。

###

不幸的是,我找不到一个好的解决方案。我最终写了一个索引各个值的循环。但是,这非常慢,花费了20分钟以上的时间填充了250行的80列(大约20种不同的代码排列,然后循环)。以下是填充一列的循环之一的示例。有任何改善建议吗?

for (i in 1:length(Table1$columnA)) {
  m <- (Table1[i,columnA])
    x <- length(unique(subset(Table2,Table2$columnA == m )$Table2$columnC))
  x <- as.numeric(x)
  Table1[i,"columnB"] <- x 
}

0 个答案:

没有答案