【发布时间】:2013-04-21 13:00:41
【问题描述】:
我有以下数据
set.seed(11)
Data<-rbind(c(1:5),c(2:6))
Candidates <- matrix(1:25 + rnorm(25), ncol=5,
dimnames=list(NULL, paste0("x", 1:5)))
colnames(Data)<-colnames(Candidates)
我想从候选矩阵的每一行中减去我的每一行数据 并返回最小绝对差 所以对于第一行,我想找出可能的最小错误量
sum(abs(Data[1,]-Candidates[1,]))
sum(abs(Data[1,]-Candidates[2,]))
sum(abs(Data[1,]-Candidates[3,]))
sum(abs(Data[1,]-Candidates[4,]))
sum(abs(Data[1,]-Candidates[5,]))
在本例中为 38.15826。目前我实际上对找出哪个候选行导致最小绝对偏差并不感兴趣,我只想知道每个数据行的最小绝对偏差。
然后我想得到一个新数据集,其中包含我的原始数据和最小偏差,例如第一行会这样:
x1 x2 x3 x4 x5 MinDev
1 2 3 4 5 38.15826
我的真实候选矩阵相对较小,但我的真实数据很大, 所以目前我只是在构建一个循环
Err[i,]<- min(rbinds(
sum(abs(Data[i,]-Candidates[1,])),
sum(abs(Data[i,]-Candidates[2,]))...))
但我确信有更好、更自动化的方法来执行此操作,以便它可以容纳大型数据矩阵和不同大小的候选矩阵。
有什么想法吗?
【问题讨论】:
-
在开头使用
set.seed使示例可重现。 -
已编辑原始问题,我忘记定义种子。道歉
标签: r