簡體   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