逗号而不是RLC中的XLConnect和readWorksheet的点

时间:2015-03-12 11:05:08

标签: r excel

我正在使用XLConnect库来读取.xlsx数据以进行paneldata分析。我的问题:如果读取数据框,我得到逗号而不是点作为小数分隔符,我不知道为什么会这样,我应该如何解决它。我来自欧洲,但我在Excel中使用小数点。

重现一个例子非常困难,这里有重要的部分:

wb = loadWorkbook("Bel_PANEL_DATA.xlsx") 
df_price <- readWorksheet(wb, sheet="Prices", keep=c(3,10))
colnames(df_price) <- c("Year", "Price")

一些随机行的输出是:

      Year          Price
38    2000          175,1735
39    2001          196,2913
40    2002          204,3013
41    2003          251,2955
42    2004          259,8135
43    2005          265,1185
44    2006          370,9554
45    2007          367,2868
46    2008          339,0321
47    2009          348,6053

和......

> typeof(df_price$Price)
[1] "character"

如果我使用as.numeric我只获得NA值(所有这些)......

2 个答案:

答案 0 :(得分:3)

在将它们设置为as.numeric()之前,您需要将","替换为"."

df_price$Price <- as.numeric(sub(",", ".", df_price$Price))

答案 1 :(得分:0)

data<-read.table(header=T,text="
Year          Price
2000          175,1735
2001          196,2913
2002          204,3013
2003          251,2955
2004          259,8135
2005          265,1185
2006          370,9554
2007          367,2868
2008          339,0321
2009          348,6053")
price<-paste(substr(data$Price,1,3),substr(data$Price,5,8))
library(stringr)
data$Price <- as.numeric(str_replace_all(price, fixed(" "), ""))
str(data)