问题描述
我想知道如何将值转换为数字,因为它们涉及小数和点。感谢您的帮助。
c("1.139,0000","1.160,"1.194,"1.533,3500","1.550,"1.602,"1.825,4000","2.042,1234","2.200,0000"
)
所需的输出:
c("1139.0000","1160.0000","1194.0000","1533.3500","1550.0000","1602.0000","1825.0000","1825.4000","2042.1234","2200.0000","2200.0000"
)
解决方法
在基础 R 中,您可以使用 sub
删除 .
并将 ,
替换为 .
。
as.numeric(sub(',','.',sub('.','',x,fixed = TRUE),fixed = TRUE))
# [1] 1139.000 1160.000 1160.000 1160.000 1160.000 1194.000 1533.350 1550.000
# [9] 1550.000 1602.000 1825.000 1825.000 1825.000 1825.000 1825.000 1825.000
#[17] 1825.000 1825.400 1825.000 1825.000 2042.123 2200.000 2200.000 2200.000
#[25] 2200.000 2200.000 2200.000 2200.000 2200.000 2200.000 2200.000 2200.000
#[33] 2200.000 2200.000 2200.000
我们也可以使用 parse_number
中的 readr
将 decimal_mark
指定为逗号。
library(readr)
parse_number(x,locale = locale(decimal_mark = ','))