Для l oop рассчитывается только первая строка - PullRequest
1 голос
/ 01 мая 2020

Я пытаюсь построить для l oop, который решает для списка переменных в наборе данных. Однако, как только я его запустил, кажется, что код вычисляет только первую переменную.

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

Любая помощь по этому вопросу с благодарностью.

1 Ответ

2 голосов
/ 01 мая 2020

Столбец CosineItem обновляется / заменяется с каждого l oop. Если мы обновляем определенную строку, используйте индекс

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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...