繁体   English   中英

如何根据列是否全部为数字(但采用字符格式)将整列转换为数字?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM