我导入了一个Excel文件,得到了一个类似于这样的数据框
structure(list(A = structure(1:3, .Label = c("1.100", "2.300",
"5.400"), class = "factor"), B = structure(c(3L, 2L, 1L), .Label = c("1.000.000",
"500", "7.800"), class = "factor"), C = structure(1:3, .Label = c("200",
"3.100", "4.500"), class = "factor")), .Names = c("A", "B", "C"
), row.names = c(NA, -3L), class = "data.frame")
我现在想将这些字符
转换为数字
甚至是整数
。但是,句点( .
)不是十进制符号而是“千分位分隔符”(德语)。
我应该如何正确地转换数据框?
我尝试了这个:
df2 <- as.data.frame(apply(df1, 2, gsub, pattern = "([0-9])\\.([0-9])", replacement= "\\1\\2"))
df3 <- as.data.frame(data.matrix(df2))
然而,
apply
似乎会将每列转换为因子列表。我是否可以防止apply
这样做?
read.*
函数的数据输入级别得到解决:http://stackoverflow.com/questions/10823241/how-can-i-completely-remove-scientific-notation-for-the-entire-r-session/10823641#10823641 - IRTFM