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