Watson Studio 在 Refine 中更改同一类型的多个列类型
Watson Studio change multiple column types at the same type in Refine
我正在将一个包含 152 列的文件加载到 watson studio,但我遇到的问题是默认情况下它采用 string
类型。
有没有办法同时更改多个列?
我知道我可以逐列完成,但 150 列太多了。
我试过了"mutate_all(~ ifelse(is.na(as.double(.x)),.x,as.double(.x)))"
它在预览中有效,但在我启动流程时失败并出现以下错误:
19 Feb 2019-20:15:25+0100: Job execution started
19 Feb 2019-20:15:32+0100: Error in ifelse(is.na(as.double(.x)), .x, as.double(.x)): object 'COLUMN1' not found
19 Feb 2019-20:15:32+0100: Job execution ended
如果您需要对所有字符串列进行操作,请使用 mutate_if
而不是 mutate_all()
mutate_if(is.character,as.double)
它应该将所有字符串类型更改为双精度。
因此,如果您不想转换任何特定的列,则必须执行类似这样的操作,-matches() 会列出指定列以外的所有列,并且只会对这些列应用双重转换。
mutate_at(vars(-matches("columnname")),funs(as.double(.)))
我正在将一个包含 152 列的文件加载到 watson studio,但我遇到的问题是默认情况下它采用 string
类型。
有没有办法同时更改多个列?
我知道我可以逐列完成,但 150 列太多了。
我试过了"mutate_all(~ ifelse(is.na(as.double(.x)),.x,as.double(.x)))"
它在预览中有效,但在我启动流程时失败并出现以下错误:
19 Feb 2019-20:15:25+0100: Job execution started
19 Feb 2019-20:15:32+0100: Error in ifelse(is.na(as.double(.x)), .x, as.double(.x)): object 'COLUMN1' not found
19 Feb 2019-20:15:32+0100: Job execution ended
如果您需要对所有字符串列进行操作,请使用 mutate_if
而不是 mutate_all()
mutate_if(is.character,as.double)
它应该将所有字符串类型更改为双精度。
因此,如果您不想转换任何特定的列,则必须执行类似这样的操作,-matches() 会列出指定列以外的所有列,并且只会对这些列应用双重转换。
mutate_at(vars(-matches("columnname")),funs(as.double(.)))