如何将数据帧列转换为数字类型?


当前回答

如果x是dataframe dat的列名,x的类型是factor,使用:

as.numeric(as.character(dat$x))

其他回答

如果x是dataframe dat的列名,x的类型是factor,使用:

as.numeric(as.character(dat$x))

要将数据帧列转换为数字,你只需要做:-

因数转换为数字:-

data_frame$column <- as.numeric(as.character(data_frame$column))

Df列出你的数据框架。X是要转换的df的一列

as.numeric(factor(df$x))

如果你遇到以下问题:

as.numeric(as.character(dat$x))

看看你的小数点。如果它们是“,”而不是“。”(如。"5,3")以上都不行。

一个潜在的解决方案是:

as.numeric(gsub(",", ".", dat$x))

我相信这在一些非英语国家是很常见的。

有一点对我很有帮助:如果要转换的变量范围(或者不止一个),可以使用sapply。

有点荒谬,举个例子:

data(cars)
cars[, 1:2] <- sapply(cars[, 1:2], as.factor)

假设第3列、第6-15列和第37列的数据帧需要转换为数字:

dat[, c(3,6:15,37)] <- sapply(dat[, c(3,6:15,37)], as.numeric)