2014-05-17 17 views
-1

我试图分析降雨量数据。但我的问题是,我有格式的数据:降雨量数据,无法获得表格的价值?

head(dati) 
    X X.1 X.2 X.3  1. stat 2. stat 3.stat 4. stat 5. stat 
2 2013 1 Val01 00:00   0  0.7      0.2 
3 2013 1 Val01 01:00   0  0.5      0.2 
4 2013 1 Val01 02:00   0  0      0.2 
5 2013 1 Val01 03:00   0  0      0 
6 2013 1 Val01 04:00   0  0      0.1 
7 2013 1 Val01 05:00   0  0      0 

正如你看到有在列的一些空间,当我试图让dati[1,5]我得到

[1] 0.7 

53 Levels: 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 ... HPRAB 

我明白,我需要得到只有一个数字:0.7。我该怎么做,为什么有关于关卡的信息?

我的代码是:

dati<-read.csv2("precipitation.csv", header = TRUE,row.names=NULL, 
    sep = ";", quote = "", dec = "," , fill = TRUE, comment.char = "") 
attach(dati) 

dati[1,1] 
[1] 2013 
> dati[1,6] 
[1] 0.7 
53 Levels: 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 ... HPRAB 
> dati[1,3] 
[1] Val01 
32 Levels: Val01 Val02 Val03 Val04 Val05 Val06 Val07 Val08 Val09 Val10 Val11 Val12 ... Val31 
> dati[1,4] 
[1] 00:00 
25 Levels: 00:00 01:00 02:00 03:00 04:00 05:00 06:00 07:00 08:00 09:00 10:00 11:00 ... 23:00 
> 

解决!下一个代码正常工作!

dati<-read.csv2("precipitation.csv", header = TRUE,row.names=NULL, 
     sep = ";", quote = "", dec = "," , fill = TRUE, comment.char = "") 
    attach(dati) 
as.numeric(as.character(dati[1,i])) 

回答

0

你得到关于级别的信息,因为那些列存储为factor S(参见?factor)。您可以使用as.numeric(as.character(df$yourcolumn))将因子转换为数字(其中df是您要转换的data.frame和yourcolumn)。

检查这些列中是否有任何字符(不包括NA),因为R通常只将数字(和NA)解释为数字。

+0

我用'as.numeric(as.character(dati [1,i]))'这是工作! – user3642191