lapply не обновляет счет - PullRequest
       6

lapply не обновляет счет

0 голосов
/ 06 ноября 2019

Я анализирую этот набор данных в R: https://www.kaggle.com/rounakbanik/pokemon

Я попытался определить, какой тип покемонов имеет наименьшую уязвимость, объединяя столбцы против типа "*".

, ностолбец окончательной оценки повторяет первое найденное значение вместо изменения для каждого типа, где я делаю ошибку.

pokemon_csv=read.csv("pokemon.csv")
pokemon_csv
tiposunicos=c(levels(factor(pokemon_csv$type1)))
pokemonDT=as.data.table(pokemon_csv)
nmunidades=data.table(type="",score=0)
valorinmunidad<-function(x){ #devuelve el valor de la columna
  v=0
  if(head(todostipo[,..x],1)==0){
    v=v+0
  } else if(head(todostipo[,..x],1)==0.25){
    v=v+0.25
  } else if(head(todostipo[,..x],1)==0.5){
    v=v+0.5
  } else if(head(todostipo[,..x],1)==1){
    v=v+1
  }else if(head(todostipo[,..x],1)==2){
    v=v+2
  }else if(head(todostipo[,..x],1)==4){
    v=v+4
  }else{returnValue(0)}
  return(as.double(v))
}


puntuacion<-function(x){
  todostipo=pokemonDT[type==x] 
  todascols=c(colnames(pokemonDT[type==x]))
  e1=todascols[-1]
  entradafunct=e1[-c(19:44)]
  puntuacion=0
  p=lapply(entradafunct,valorinmunidad)
  puntos=(p[[1]]+p[[2]]+p[[3]]+p[[4]]+p[[5]]+p[[6]]+p[[7]]+p[[8]]+p[[9]]+p[[10]]+p[[11]]+p[[12]]+p[[13]]+p[[14]]+p[[15]]+p[[16]]+p[[17]]+p[[18]])
  inmunidad=data.table(type=x,score=puntos)
  return (inmunidad)
} 

puntospokemon=lapply(tiposunicos,puntuacion)
dfFinal=do.call("rbind", puntospokemon)
ordenado=dfFinal[order(score)]
ordenado

Например, если вы делаете puntuacion («ошибка»), вы получаете 19 или puntuacion(«сталь») и получите 15, так почему, когда я отображаю список со всеми типами, он не меняет счет и повторяет один и тот же

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...