使用R进行数据模式匹配

时间:2017-04-15 09:49:29

标签: r design-patterns matching

我刚开始使用R而且在处理原始数据时遇到了障碍。所以这就是问题所在。我有两个数据集A和B,它们具有相同的行数(公司名称)和列(月)。但显然我必须匹配数据位置的模式,(例如.A的if(i,j)是空白的,那么我需要删除(i,j)的数据B中的条目。我需要有相同的数字两个数据集中的单元格和相同的数据分配模式。我尝试过这个双循环,但它不起作用。

  for (i in  1:length.firm)
            for (j in 1:time.)
                  if (CR [i,j] == ",") marketreturnmonthly[i,j] == ","

谁能告诉我如何解决这个问题? enter image description here

1 个答案:

答案 0 :(得分:1)

此解决方案使用“data.table”包:

A <- data.table(symbol = c("1990.01","1990.02","1990.03"), A1 = c(4,NA,NA), A2 = c(6,7,NA), A3 = c(NA, 8, NA))
B <- data.table(symbol = c("1990.01","1990.02","1990.03"), A1 = c(1,4,7), A2 = c(2,5,8), A3 = c(3, 6, 9))
vec <- ifelse(as.vector(is.na(A)), NA, unlist(B))
C <- data.table(matrix(vec, 3))
colnames(C) <- c("Symbol", "A1", "A2", "A3")
C
   Symbol  A1 A2 A3
1: 1990.01  1  2 NA
2: 1990.02 NA  5  6
3: 1990.03 NA NA NA