>
>
> How to safely avoid this warning massage?
> Now I have <NA> instead of "Total" in last row State column. How to I
> replace it as "Total"?
>
> Dear All,

The below link provides a very good explanation of  "Creating factor
variables" and way to avoid the warning message
http://www.ats.ucla.edu/stat/R/modules/factor_variables.htm

Now it works for me without warning message ( invalid factor level, NAs
generated ) according to the document above , I did  below to avoid the
warning:

> data <- read.csv(file='ipsample.csv',sep=',' , header=TRUE)
> data
  State  Jan  Feb  Mar  Apr  May Jun
1   AAA    1    1    0    2    2   0
2   BBB 1298 1195 1212 1244 1158 845
3  CCC     0    0    0    1    2   1
4   DDD    5   11   17   15   10   9
5   EEE   18   28   27   23   23  16
6   FFF   68  152  184  135  111  86


> a <- rbind(data, c("Total",apply(data[,-1], 2, sum, na.rm=TRUE)))
Warning message:
In `[<-.factor`(`*tmp*`, ri, value = "Total") :
  invalid factor level, NAs generated

> a
  State  Jan  Feb  Mar  Apr  May Jun
1   AAA    1    1    0    2    2   0
2   BBB 1298 1195 1212 1244 1158 845
3  CCC     0    0    0    1    2   1
4   DDD    5   11   17   15   10   9
5   EEE   18   28   27   23   23  16
6   FFF   68  152  184  135  111  86
7  <NA> 1390 1387 1440 1420 1306 957

We can see that instead of "Total", the label was <NA>. To do this
correctly, I have added the new level, "Total", to the factor column
data$State using the factor function with the levels argument. Then I can
finally add an element to the factor variable from the new level. here is
the steps

> levels(data$State)
[1] "AAA"  "BBB"  "CCC " "DDD"  "EEE"  "FFF"

> data$State <- factor(data$State,levels=c(levels(data$State),"Total"))

> data$State
[1] AAA  BBB  CCC  DDD  EEE  FFF
Levels: AAA BBB CCC  DDD EEE FFF Total

> levels(data$State)
[1] "AAA"   "BBB"   "CCC "  "DDD"   "EEE"   "FFF"   "Total"

> x <- rbind(data, c("Total",apply(data[,-1], 2, sum, na.rm=TRUE)))

Now the above works without warning.

> x
  State  Jan  Feb  Mar  Apr  May Jun
1   AAA    1    1    0    2    2   0
2   BBB 1298 1195 1212 1244 1158 845
3  CCC     0    0    0    1    2   1
4   DDD    5   11   17   15   10   9
5   EEE   18   28   27   23   23  16
6   FFF   68  152  184  135  111  86
7 Total 1390 1387 1440 1420 1306 957

I think I am doing right. If  I miss understood anything. Please guide me  I
am beginer to R.

Thanks & Rg
Mohan L

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to