Access data.frame information in R

Asked

Viewed 103 times

4

I’m trying to develop a recommendation system using the R language.
Basically, the system is music recommendation collecting information from a file where there is a certain amount of users and for each user, a count of times he has heard a certain artist.

library(recommenderlab) #Bibliotecas utilizadas para carregar dados e montar recomendações
library(tidyverse)
library(data.table)

setwd("C:/Users/DIRETORIO/Documents/R/dados") #Local de arquivo de treinamento

dados <- fread("dadosTreinamento.txt", header = TRUE, sep = "\t", fill = TRUE) #Dados carregados em variável

names(dados)[2:3] <- c("IdArtist", "IdUser") #Renomeando colunas 2 e 3

dadosGrupo <- group_by(dados, IdUser, IdArtist) #Agrupando os dados

dadosGrupo2 <- summarise(dadosGrupo, count = n()) #Gerando tabela com soma da quantidade de vezes que cada usuário ouviu determinado artista
dadosGrupo2 <- as.data.frame(dadosGrupo2) #Convertendo dadosGrupo2 para data.frame

matrizAfinidade <- as(dadosGrupo2, "realRatingMatrix") #Matriz real de dados

Rec.model<-Recommender(matrizAfinidade, method = "UBCF")

usuarios <- length(unique(dadosGrupo2$IdUser)) #Capturando a quandidade de usuários únicos

listaRecomendacoes <- vector("list", usuarios)

for (i in 1:usuarios) {
  itemRecomendado <- predict(Rec.model, matrizAfinidade[i,], n=5)
  listaRecomendacoes[[i]] <- as((itemRecomendado), "list")
}

After generating the recommendation in:

for (i in 1:usuarios) {
  itemRecomendado <- predict(Rec.model, matrizAfinidade[i,], n=5)
  listaRecomendacoes[[i]] <- as((itemRecomendado), "list")
}

Need, through the result with the album id, rescue the line with the corresponding data about the artist. For example: for the user 7687 was generated the recommendation "54" "85" "52" "245" "8035". With the id of the first Album of the example (54), I need to recover the information of the whole corresponding line.

I’ve researched many ways to do this, but they all teach through addressing, not with the data itself.

The database is at this link

1 answer

6


Use the function subset(seuDataFrame, seuDataFrame$colunaID == valorID), it will return the line corresponding to the ID you want.

  • 1

    Thank you, you cleared my doubt.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.