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(.)))