【发布时间】:2018-08-31 00:18:16
【问题描述】:
我知道这是一个愚蠢的问题,但我对我的代码有点失望,因为它需要很多时间。 Jere 是我的代码的一部分。 基本上我有一个叫做“距离”的矩阵......
a b c
1 2 5 7
2 6 8 4
3 9 2 3
然后假设我在数据框中有一列,包含 {a,b,c}
c1 c2 c3
c ... ...
a
a just another column
b
c ... ...
所以我想做一个匹配,我想用 ncol=nrow(distance) 和 nrow=nrow(c1) 制作另一个矩阵。其中用它们的距离值替换因子值。这是我要制作的矩阵第一列的示例
a will replaced by 2
b will replaced by 5
c will replaced by 7
对于第二列,我将从距离矩阵中取出第 2 行,依此类推......所以结果将是这样的
m1 m2 m3
7 4 3
2 6 9
2 6 9
5 8 2
7 4 3
这只是一个简单的例子,我正在运行这段代码,但是当它处理大量迭代时,对我来说有点压力。
for(l in 1:ncol(d.cat)){
get.unique = sort(unique(d.cat[, l]))
for(j in 1:nrow(d.cat)){
value = as.character(d.cat[j, l])
index = which(get.unique == value)
d2[j,l] = (d[[l]][i, index])
}
}
d.cat 是分类数据。 d[[...]] 是 d.cat 中每一列的矩阵距离列表。
【问题讨论】:
-
我删除了
[rcpp]标签,因为这与Rcpp无关。
标签: r performance dataframe matrix