Watson Studio在Refine中以相同类型更改多个列类型

时间:2019-02-19 19:18:19

标签: watson-studio

我正在将一个具有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

1 个答案:

答案 0 :(得分:0)

如果需要对所有字符串列进行操作,请使用mutate_if而不是mutate_all()

mutate_if(is.character,as.double)

应将所有字符串类型更改为双精度。

因此,如果您不希望转换任何特定的列,则必须执行类似的操作,-matches()会列出除指定列之外的所有列,并且仅将双重转换应用于那些列。

mutate_at(vars(-matches("columnname")),funs(as.double(.)))