对于循环遍历唯一值不起作用

时间:2017-06-13 13:08:25

标签: r

我知道这个问题已经成为一些问题的主题了,我尝试了同样的方式,但我得不到我想要的结果......我确定有人可以帮助我解决我的问题;)这里有一个小例子:

在我的“结果矩阵”中,我在每个列中得到相同的值,但我需要每个m ???的vaules

提前感谢。

n=5
result = matrix(NA,ncol = 3 ,nrow = 5)
y=cbind(3,5,6,7,9)
mth = c(1,5,10)
  for(m in 1:length(unique(mth))){
if (m==1)   {d0 = 2}
if (m==5)   {d0 = 5}
if (m==10)   {d0 = 9 }
result[,m] = d0%*% y}

1 个答案:

答案 0 :(得分:2)

我认为你搞砸了索引和samplerExternalOES的价值。

如果您说mthfor(m in 1:length(unique(mth)))将采用值m,因为向量1 2 3的长度为mth

我在您的代码的3向量中添加了索引(例如mth,当mth[m]mth时,m将为您提供第一个值1第一次迭代等等,现在它应该给你预期的结果。

n=5
result = matrix(NA,ncol = 3 ,nrow = 5)
y=cbind(3,5,6,7,9)
mth = c(1,5,10)

for(m in 1:length(unique(mth))){
  if (mth[m]==1)   {d0 = 2}
  if (mth[m]==5)   {d0 = 5}
  if (mth[m]==10)   {d0 = 9 }
  result[,m] = d0%*% y}