以逗号作为小数分隔符的数据框
data frame with commas as decimal separator
我有数据框作为 csv 文件,数字用逗号分隔作为小数点分隔符,我设法使用 read.csv2
在 R 中导入和读取它。但现在数字被视为 characters
.
我想做的是用点代替逗号,得到一个numeric
值。
我的 df 是这样的:
var1 <- c("50,0", "72,0", "960,0", "1.920,0", "50,0", "50,0", "960,0")
var2 <- c("40,0", "742,0", "9460,0", "1.920,0", "50,0", "50,0", "960,0")
var3<- c("40,0", "72,0", "90,0", "1,30", "50,0", "50,0", "960,0")
df <- data.frame(cbind(var1, var2, var3))
但是在这种情况下,数字被视为因素而不是字符
读入 .csv 文件时,可以根据文件类型指定 sep
和 dec
参数:
# assuming file uses ; for separating columns and , for decimal point
# Using base functions
read.csv(filename, sep = ";", dec = ",")
# Using data.table
library(data.table)
fread(filename, sep = ";", dec = ",")
您应该首先尝试解决问题的根源,仅当无法获得所需结果时才应使用正则表达式和其他解决方法。
我有数据框作为 csv 文件,数字用逗号分隔作为小数点分隔符,我设法使用 read.csv2
在 R 中导入和读取它。但现在数字被视为 characters
.
我想做的是用点代替逗号,得到一个numeric
值。
我的 df 是这样的:
var1 <- c("50,0", "72,0", "960,0", "1.920,0", "50,0", "50,0", "960,0")
var2 <- c("40,0", "742,0", "9460,0", "1.920,0", "50,0", "50,0", "960,0")
var3<- c("40,0", "72,0", "90,0", "1,30", "50,0", "50,0", "960,0")
df <- data.frame(cbind(var1, var2, var3))
但是在这种情况下,数字被视为因素而不是字符
读入 .csv 文件时,可以根据文件类型指定 sep
和 dec
参数:
# assuming file uses ; for separating columns and , for decimal point
# Using base functions
read.csv(filename, sep = ";", dec = ",")
# Using data.table
library(data.table)
fread(filename, sep = ";", dec = ",")
您应该首先尝试解决问题的根源,仅当无法获得所需结果时才应使用正则表达式和其他解决方法。