[R] [FORGED] NA value in list of data frame

Rolf Turner r@turner @end|ng |rom @uck|@nd@@c@nz
Fri Oct 18 04:41:58 CEST 2019


On 18/10/19 2:43 PM, ani jaya wrote:

>   Dear R-Help,
> 
> I have a list of data frame that I import from excel file using read.xlsx
> command.
> 
> sheets <- openxlsx::getSheetNames("rainfall.xlsx")
> test <- lapply(sheets,function(i) read.xlsx("rainfall.xlsx", sheet=i,
> startRow=8, cols=1:2))
> names(test) <- sprintf("%i", 1986:2015)
> 
> And I got a data.frame with 365 rows and two columns contains date and
> rainfall data.
> There is a value in rainfall data that i want to change as NA (8888). So my
> question is how to change those value in all the data frame?
> 
> test[1]$`1986`
>         Date   RR
> 1   01-01-1986    0
> 2   02-01-1986    7
> 3   03-01-1986   72
> 4   04-01-1986    4
> 5   05-01-1986   19
> 6   06-01-1986    4
> 7   07-01-1986   16
> 8   08-01-1986   21
> 9   09-01-1986   34
> 10  10-01-1986   72
> 11  11-01-1986   93
> 12  12-01-1986  178
> 13  13-01-1986   86
> 14  14-01-1986   11
> 15  15-01-1986    0
> 16  16-01-1986   31
> 17  17-01-1986   22
> 18  18-01-1986   18
> 19  19-01-1986    3
> 20  20-01-1986    0
> 21  21-01-1986   31
> 22  22-01-1986   46
> 23  23-01-1986    4
> 24  24-01-1986   40
> 25  25-01-1986   63
> 26  26-01-1986  125
> 27  27-01-1986   33
> 28  28-01-1986   44
> 29  29-01-1986    6
> 30  30-01-1986    0
> 31  31-01-1986    0
> 32  01-02-1986    2
> 33  02-02-1986   71
> 34  03-02-1986 8888
> 35  04-02-1986    0
> 36  05-02-1986    0
> 37  06-02-1986   56
> 38  07-02-1986   19
> 39  08-02-1986    3
> 40  09-02-1986    7
> 41  10-02-1986   24
> 42  11-02-1986   55
> 43  12-02-1986    0
> 44  13-02-1986    0
> .
> .
> .
> 
> Should I extract the data frame from the list one by one?

Try (something like):

revisedTest <- lapply(test,function(x){x$RR[x$RR==8888] <- NA; x})

Or, using Bert Gunter's slick is.na() trick:

revisedTest <- lapply(test,function(x){is.na(x$RR) <- x$RR==8888; x})

(Note:  not tested.)

cheers,

Rolf Turner

-- 
Honorary Research Fellow
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276



More information about the R-help mailing list