R函数不返回值

时间:2019-01-21 17:51:22

标签: r function

我正在研究与FIFA 19数据(https://www.kaggle.com/karangadiya/fifa19)相关的Kaggle内核,并尝试创建一个将列中的数字相加的函数。 该列的值类似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 :(得分:0)

读取df中的csv数据 然后使用

提取所需的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)
}

您可以将{data}与原始数据一起cbind,并删除原始列。

我希望它能对您有所帮助。