如何将具有数字值的 char 数据类型的列转换为数字数据类型
Posted
技术标签:
【中文标题】如何将具有数字值的 char 数据类型的列转换为数字数据类型【英文标题】:How to convert columns having char datatype with numeric values to numeric datatype 【发布时间】:2017-03-24 11:00:04 【问题描述】: $Budget(chr)"3,000.00", "2,000.00", "2,000.00"...
$Impressions(int) 0, 0, 0, 0...
$Interactions(int) 0, 0, 0...
$Interaction.Rate(chr) "0.00%", "0.00%", "0.00%"...
$Avg..Cost (dbl) 0, 0, 0, 0, 0, 0, 0...
$Cost(chr) "0", "0", "0", "0"...
$Clicks(int) 0, 0, 0, 0...
$CTR(chr) "0.00%", "0.00%", "0.00%"...
我有一些列。它们都有数值,但是当我在 R 中导入它们时,它们似乎是字符数据类型。我想将这些字符转换为整数,并从具有它们的列中删除 % 符号.
mData=mData %>%
mutate(Budget=as.numeric(Budget),
Interaction.Rate=as.numeric(gsub("%","",Interaction.Rate)),
Cost=as.numeric(Cost),
CTR=as.numeric(gsub("%","",CTR)))
我试过这样做但没有结果反而给了我错误:
警告信息:在 eval(substitute(expr), envir, enclos) : NAs 强制引入
谁能帮我解决这个问题
【问题讨论】:
How to convert a data frame column to numeric type?的可能重复 您需要从Budget
列中删除逗号以及gsub
。另一种可能性是使用readr
-package 中的parse_number
-function。
【参考方案1】:
您可以使用transform
将它们转换回numeric
。
transform(mData, Budget= as.numeric(Budget), Interaction.Rate = as.numeric(nteraction.Rate), ...)
要删除 ,
和 %
使用 gsub
(从 here 得到想法)
mData$Budget<- as.numeric(gsub("," ,"" ,mData$Budget))
【讨论】:
以上是关于如何将具有数字值的 char 数据类型的列转换为数字数据类型的主要内容,如果未能解决你的问题,请参考以下文章
如何使用pyspark将具有多个可能值的Json数组列表转换为数据框中的列