For loop over唯一值不起作用

For loop over唯一值不起作用,r,R,我知道这个问题已经准备好了一些问题的主题,我也尝试了同样的方法,但我没有得到我想要的结果。。。我相信有人能帮我解决我的问题;)这里有一个小例子: 在我的“结果矩阵”中,我在每个列中得到相同的值,但我需要每个m的值 提前谢谢 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的值

提前谢谢

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}

我想你弄乱了索引和
mth
的值

如果说
for(m in 1:length(unique(mth))
m
将取值
13
,因为向量
mth
的长度为
3

我在代码的
mth
向量中添加了索引(例如,
mth[m]
将在第一次迭代中
m
1
时,为您提供
mth
的第一个值,依此类推),现在它将为您提供预期的结果

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}

我想你弄乱了索引和
mth
的值

如果说
for(m in 1:length(unique(mth))
m
将取值
13
,因为向量
mth
的长度为
3

我在代码的
mth
向量中添加了索引(例如,
mth[m]
将在第一次迭代中
m
1
时,为您提供
mth
的第一个值,依此类推),现在它将为您提供预期的结果

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}

您是否可以显示预期的outputm是一个获取值1、2、3的计数器。它永远不会达到5,所以很明显你总是得到相同的数字。将
m
替换为循环中的
mth[m]
,您就可以开始了。您能否显示预期输出m是一个获取值1、2、3的计数器。它永远不会达到5,所以很明显你总是得到相同的数字。将
m
替换为循环中的
mth[m]
,就可以开始了。