[英]How do I convert an entire column to numeric based on whether the column is all numbers (but in character format)?
我有一个非常大的数据集,有很多列,所以我不想手动将每一列从字符转换为数字,而是想自动完成。 由于列中的值是“0”、“1”、“2”...“9”,(“1”到“9”),我想象某种循环遍历每一列,检查是否该列全部为“0”、“1”、“2”...或“9”,然后将它们全部转换为数字。
做这个的最好方式是什么?
如果所有列值都是数字,则可以将值转换为数字。
df[] <- lapply(df, function(x) if(all(grepl('^\\d+$', x))) as.numeric(x) else x)
使用dplyr
-
library(dplyr)
df <- df %>% mutate(across(where(~all(grepl('^\\d+$', .x))), as.numeric))
使用base R
。 我们不需要任何正则表达式 - 这可以使用type.convert
自动转换为数字类型
df <- type.convert(df, as.is = TRUE)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.