【发布时间】:2016-10-07 05:50:49
【问题描述】:
我目前有两个表,endingStock 和 totalUsage,每个表中的每一行都有一个日期条目。我想遍历每个表的行,比较日期,如果日期相同,我想从endingStock和totalUsage中提取变量unit value的值,并将endingstock$unitvalue / totalUsage$unitvalue附加到第三个表, ratioTable.
在这个网站上使用了一堆不同的答案,我尝试将 ratioTable 设置为 NULL 并使用以下循环逐行构建表格:
for (i in 1:nrow(endingStocks)) {
for (j in 1:nrow(useTotals)) {
if (endingStocks[i,]$valuedate == useTotals[j,]$valuedate) {
ratio = endingStocks[i,]$`unit value` / useTotals[j,]$`unit value`
newrow <- c(endingStocks[i,]$valuedate, ratio)
ratioTable <- rbind(ratioTable, newrow)
}
}
}
但是,这似乎是在跳过值。每个数据框有 200 多个在日期方面大致匹配的条目,因此生成的 ratioTable 应该具有相同的条目顺序,但只有 24 个。
1) 有没有办法使用矢量化操作有效地做到这一点?
2) 我的代码有什么明显的错误吗?
【问题讨论】:
标签: r vectorization