Nic*_*ick 14 formatting currency r numeric
我在数据框中有一列如下:
COL1
$54,345
$65,231
$76,234
Run Code Online (Sandbox Code Playgroud)
我如何将其转换为:
COL1
54345
65231
76234
Run Code Online (Sandbox Code Playgroud)
我最初尝试的方式是:
df$COL1<-as.numeric(as.character(df$COL1))
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为它说NA被引入.
然后我尝试了这样:
df$COL1<-as.numeric(gsub("\\$","",as.character(df$COL1)))
Run Code Online (Sandbox Code Playgroud)
而这一切都发生了.
有任何想法吗?
Ron*_*hah 32
我们可以使用parse_number从readr包里面删除任何非数字字符.
library(readr)
parse_number(df$COL1)
#[1] 54345 65231 76234
Run Code Online (Sandbox Code Playgroud)
akr*_*run 22
列中gsub没有工作的原因,是仍然是非数字的.因此,当转换为'numeric'时as.numeric,所有非数字元素都将转换为NA.因此,我们需要删除它们,并$使其工作.
df1$COL1 <- as.numeric(gsub('[$,]', '', df1$COL1))
Run Code Online (Sandbox Code Playgroud)
我们匹配方括号()内部$和,内部,[$,]以便将其视为该字符($单独留下具有特殊含义,即它表示字符串的结尾.)并将其替换为''.
或者我们可以转义(\\)字符($)以匹配它并替换为''.
df1$COL1 <- as.numeric(gsub('\\$|,', '', df1$COL1))
Run Code Online (Sandbox Code Playgroud)