0

我正在将一个包含 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
4

1 回答 1

0

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

mutate_if(is.character,as.double)

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

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

mutate_at(vars(-matches("columnname")),funs(as.double(.)))
于 2019-02-21T07:44:18.460 回答