无效因子级别,在将行合并到R中的数据帧时生成的NA

时间:2018-03-13 11:18:13

标签: r dataframe rbind

我使用rbind函数在数据框中包含最后一行。我的数据框包含一个月份列以及包含来自不同数据库的一些值的其他4列。

我的数据看起来像这样

> dataframe
 Months    Nasa Meteonorm PVplanner   PVGIS
1     Jan  157.41   166.146       101 204.671
2     Feb   167.3   164.346       110 183.123
3     Mar   153.9   169.925       164 173.039
4     Apr  165.97    154.83       185 167.025
5     May  159.86   149.374       215 144.779
6     Jun  144.27   148.937       226 150.542
7     Jul  165.33   163.396       230 166.003
8     Aug  184.07   182.777       219  192.91
9     Sep  176.41   181.575       179 202.416
10    Oct  203.17   163.724       140 209.492
11    Nov  131.26   143.759       106 180.635

我想要包含最后一行(第13行),提及所有值的总和。

total_Nasa <- sum(dataframe[1:12, 2])
total_Meteonorm <- sum(dataframe[1:12, 3])
total_PVplanner <- sum(dataframe[1:12, 4])
total_PVGIS <- sum(dataframe[1:12, 5])
total <- "Total"

last_row <- c(total, total_Nasa, total_Meteonorm, total_PVplanner, total_PVGIS)


"Total"    "1954.95"  "1943.191" "1965"     "1965"

但是当我使用rbinddataframe[13, ] <- c(total, total_Nasa, total_Meteonorm, total_PVplanner, total_PVGIS)

添加这些内容时

我收到以下警告信息。我不知道如何添加“总计”这是一个因素以及这些求和值。

Warning message:
In `[<-.factor`(`*tmp*`, iseq, value = "Total") :
  invalid factor level, NA generated

这是将数据帧与数据帧合并后我的数据帧的样子。

> dataframe
   Months    Nasa Meteonorm PVplanner   PVGIS
1     Jan  157.41   166.146       101 204.671
2     Feb   167.3   164.346       110 183.123
3     Mar   153.9   169.925       164 173.039
4     Apr  165.97    154.83       185 167.025
5     May  159.86   149.374       215 144.779
6     Jun  144.27   148.937       226 150.542
7     Jul  165.33   163.396       230 166.003
8     Aug  184.07   182.777       219  192.91
9     Sep  176.41   181.575       179 202.416
10    Oct  203.17   163.724       140 209.492
11    Nov  131.26   143.759       106 180.635
12    Dec     146   154.402        90 174.406
13   <NA> 1954.95  1943.191      1965    1965

我想要“Total”而不是NA。即使将因子级别指定为

,我也遇到了同样的问题
dataframe_plot$Months <- factor(dataframe_plot$Months, levels = c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Total"))

我也尝试过在最后一行制作一个我想要的值列表,但仍会得到相同的警告。

请指导我如何解决这个问题。

此致

0 个答案:

没有答案