我正在使用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值(所有这些)......
答案 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)