我正在将一个具有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
答案 0 :(得分:0)
如果需要对所有字符串列进行操作,请使用mutate_if
而不是mutate_all()
mutate_if(is.character,as.double)
应将所有字符串类型更改为双精度。
因此,如果您不希望转换任何特定的列,则必须执行类似的操作,-matches()会列出除指定列之外的所有列,并且仅将双重转换应用于那些列。
mutate_at(vars(-matches("columnname")),funs(as.double(.)))