#1 - 2019-7-23 17:49
xorms
离职的同事留下来的R脚本,在我本地运行总是报错

 input=read.csv(filename)
   for(i in tbfactored ){
     input[,i]=factor(input[,i])
   }
   names(input)[length(input[1,])]="group"

#对样本进行过抽样和欠抽样
  input_expand <- SMOTE(group ~ ., input, perc.over = 100,perc.under=200)



Error in T[i, ] : 下标出界
此外: There were 34 warnings (use warnings() to see them)
> warnings()
警告信息:
1: In FUN(newX[, i], ...) : max里所有的参数都不存在;回覆-Inf
2: In FUN(newX[, i], ...) : max里所有的参数都不存在;回覆-Inf
3: In FUN(newX[, i], ...) : max里所有的参数都不存在;回覆-Inf
4: In FUN(newX[, i], ...) : max里所有的参数都不存在;回覆-Inf
5: In FUN(newX[, i], ...) : max里所有的参数都不存在;回覆-Inf
6: In FUN(newX[, i], ...) : max里所有的参数都不存在;回覆-Inf
7: In FUN(newX[, i], ...) : max里所有的参数都不存在;回覆-Inf
8: In FUN(newX[, i], ...) : max里所有的参数都不存在;回覆-Inf
9: In FUN(newX[, i], ...) : max里所有的参数都不存在;回覆-Inf
10: In FUN(newX[, i], ...) : max里所有的参数都不存在;回覆-Inf
11: In FUN(newX[, i], ...) : max里所有的参数都不存在;回覆-Inf
12: In FUN(newX[, i], ...) : max里所有的参数都不存在;回覆-Inf

好像是执行到smote的时候出错的。看不懂啊(bgm38)
#2 - 2019-7-23 18:17
(愛讀者諸孃は御賛成下さいまし)
可能的原因有很多,没有实际数据没法诊断的,谨慎怀疑是你这次输入的数据某些方面比较特殊(比如说很常见的一种状况,R的slice操作`[`默认drop = TRUE)以至于原来的代码没法处理。


顺便你同事的水平也是堪忧,第一部分的代码完全可以这么写:
input = read.csv(filename)
input[ , tbfactored] = apply(input[ , tbfactored], 2, factor)
colnames(input)[ncol(input)] = 'group'
#2-1 - 2019-7-23 21:49
xorms
没办法,团队没人懂R,所以也没法对他的代码质量做评估……(bgm38)