For循环只计算第一行

For循环只计算第一行,r,dataframe,R,Dataframe,我正在尝试构造一个for循环,用于解决数据集中变量列表的问题。 然而,一旦我运行它,代码似乎只计算第一个变量 for (t in 1:nTest){ m = DataTest$Item[t] u = DataTest$User[t] Sorted = sort(ItemSim[,m], decreasing = T,index.return=TRUE) MostSim = Sorted$ix[1:N] Wgts = ItemSim[MostSim,m] DataTest$CosineItem =

我正在尝试构造一个for循环,用于解决数据集中变量列表的问题。 然而,一旦我运行它,代码似乎只计算第一个变量

for (t in 1:nTest){
m = DataTest$Item[t]
u = DataTest$User[t]
Sorted = sort(ItemSim[,m], decreasing = T,index.return=TRUE)
MostSim = Sorted$ix[1:N]
Wgts = ItemSim[MostSim,m]
DataTest$CosineItem = (t(Wgts) %*% UM.Item[MostSim,u])/sum(Wgts)
DataTest$CosineItem}
DataTest$CosineItem

非常感谢您对此问题提供的任何帮助。

每个循环都会更新/替换
cosinitem
列。如果我们正在更新一个特定的行,那么使用索引

for (t in 1:nTest){
   m <- DataTest$Item[t]
   u <- DataTest$User[t]
   Sorted <- sort(ItemSim[,m], decreasing = T,index.return=TRUE)
   MostSim <- Sorted$ix[1:N]
   Wgts <- ItemSim[MostSim,m]
   DataTest$CosineItem[t] <- (t(Wgts) %*% UM.Item[MostSim,u])/sum(Wgts)
}
for(t在1:nTest中){

您是否需要
DataTest$cosinitem[t]
来解决此问题。感谢您的耐心等待。