【问题标题】:Timeseries graphs of mean values of group in RR中组平均值的时间序列图
【发布时间】:2021-04-04 17:48:59
【问题描述】:

我正在学习 R 并处理包含多个重复列的数据集,例如 200 次,因为给定的列重复了 200 次。

我想取每列的平均值,而组取每个变量的平均值。所以每个变量会有 200 个平均值。我想制作一个像这样的line chart 每个变量的平均值。 我正在尝试这些代码

library(data.table)
library(tidyverse)
library(ggplot2)
library(viridisLite)

df <- read.table("H-W.csv", sep = ",")
df
dat  %>% filter(Scenario != 'NULL') %>%
  mutate("Scenario" = ifelse(Scenario == 'NULL2', "BASELINE", Scenario)) %>%
  group_by(.dots = c("X.step.", "Scenario"))  %>%        
  summarise('height.people' = mean(height), 
            'weight.people' = mean(weight), 
            "wealth.people" = mean(wealth)) %>% 
  pivot_longer(c('height.people', 'weight.people', 'wealth.people')) %>%
  ggplot(aes(x = X.step., y = value, colour = Scenario)) + 
  geom_line(size = 1) + facet_grid(name~., scales = "free_y") + theme_classic() +
  scale_colour_viridis_d() + scale_y_log10() 

我发现了这个错误

UseMethod("filter") 中的错误: 没有适用于“NULL”类对象的“过滤器”方法

【问题讨论】:

  • 你读取了df (df &lt;- read.table("H-W.csv", sep = ",")) 中的数据,然后你使用的是dat %&gt;%....,那不应该是df %&gt;% ... 吗?
  • 嗨罗纳克。我尝试使用 df 而不是 dat %>%,它给出了以下错误错误:filter() 输入问题..1。 x 对象“场景”未找到 i 输入 ..1 是“场景!=“NULL”
  • 如果您创建一个小的可重现示例以及预期的输出,这将更容易提供帮助。阅读how to give a reproducible example

标签: r


【解决方案1】:

我想你可能和this有同样的问题...

您的数据是在 data.frame 还是 tibble 中?

如果这不起作用,试试这个……

filter 是 stats 和 dplyr 中的一个函数, 所以你可以尝试改变

dat  %>% filter(Scenario != 'NULL') %>%


dat %>% dplyr::filter(Scenario != "NULL") %>%

【讨论】:

  • 它在 UseMethod("filter") 中给出了相同的错误错误:没有适用于“过滤器”的方法应用于“NULL”类的对象
猜你喜欢
  • 1970-01-01
  • 2021-05-16
  • 1970-01-01
  • 1970-01-01
  • 2018-04-12
  • 2016-12-01
  • 1970-01-01
  • 2012-12-04
  • 2016-12-23
相关资源
最近更新 更多