Функция R не возвращает значение - PullRequest
0 голосов
/ 21 января 2019

Я работаю над ядром Kaggle, связанным с данными FIFA 19 (https://www.kaggle.com/karangadiya/fifa19), и пытаюсь создать функцию, которая складывает числа в столбце. Столбец имеет значения вроде 88 + 2 (класс - символ)

Желаемый результат будет 90 (класс - целое число)

Я попытался создать функцию для преобразования таких нескольких столбцов

add_fun <- function(x){
  a <- strsplit(x, "\\+")

  for (i in 1:length(a)){
    a[[i]] <- as.numeric(a[[i]])
  }

  for (i in 1:length(a)){
    a[[i]] <- a[[i]][1] + a[[i]][2]
  }

  x <- as.numeric(unlist(a))
}

Это прекрасно работает, когдаЯ вручную преобразовываю каждый столбец, но функция не возвращает желаемых результатов. Может кто-нибудь разобраться?

1 Ответ

0 голосов
/ 22 января 2019

читать данные в формате csv в df затем извлеките 4 необходимых столбца, используя

dff <- df[, c("LS","ST", "RS","LW")]

def_fun <- function(x){
  a <- strsplit(x, '\\+')
  for (i in length(a)){
    b <- sum(as.numeric(a[[i]]))
  }
  return (b)
}

Затем примените операции к нужным столбцам

for (i in 1: ncol(dff)){
  dff[i] <- apply(dff[i], 1, FUN = def_fun)
}

Вы можете cbind этот фрейм данных с оригинальным и удалить исходные столбцы.

Надеюсь, это окажется полезным.

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