如何将数据帧列转换为数字类型?
当前回答
要将数据帧列转换为数字,你只需要做:-
因数转换为数字:-
data_frame$column <- as.numeric(as.character(data_frame$column))
其他回答
使用type.convert()和rapply()的通用方式:
convert_types <- function(x) {
stopifnot(is.list(x))
x[] <- rapply(x, utils::type.convert, classes = "character",
how = "replace", as.is = TRUE)
return(x)
}
d <- data.frame(char = letters[1:5],
fake_char = as.character(1:5),
fac = factor(1:5),
char_fac = factor(letters[1:5]),
num = 1:5, stringsAsFactors = FALSE)
sapply(d, class)
#> char fake_char fac char_fac num
#> "character" "character" "factor" "factor" "integer"
sapply(convert_types(d), class)
#> char fake_char fac char_fac num
#> "character" "integer" "factor" "factor" "integer"
我会加一条评论(不能低评级)
只需要添加user276042和pangratz
dat$x = as.numeric(as.character(dat$x))
这将覆盖现有列x的值
如果x是dataframe dat的列名,x的类型是factor,使用:
as.numeric(as.character(dat$x))
Df列出你的数据框架。X是要转换的df的一列
as.numeric(factor(df$x))
如果你遇到以下问题:
as.numeric(as.character(dat$x))
看看你的小数点。如果它们是“,”而不是“。”(如。"5,3")以上都不行。
一个潜在的解决方案是:
as.numeric(gsub(",", ".", dat$x))
我相信这在一些非英语国家是很常见的。