ggplot与data.frame有关的问题-错误

时间:2018-06-21 11:01:49

标签: r ggplot2

使用ggplot从简单的data.frame进行绘图时遇到一些问题。我知道绘图调用应该可以正常工作,因为我有一个类似的小型data.frame可以正常工作。

绘图会导致以下错误:

Don't know how to automatically pick scale for object of type list. 
Defaulting to continuous.
Error: geom_errorbar requires the following missing aesthetics: ymin, ymax

我已经研究了结构,但有区别,但是我无法修复它们(我猜想需要做一些事情来使df平坦化?)。第二个data.frame工作正常,但第一个无效。

为什么会这样,请问如何解决?

> str(df3.temp.swim)
'data.frame':   3 obs. of  4 variables:
 $ treatment: chr  "both" "hyp" "nor"
 $ R        :List of 3
  ..$ : num 0.435
  ..$ : num 0.403
  ..$ : num 0.65
 $ CI.lower :List of 3
  ..$ : num 0.283
  ..$ : num 0.169
  ..$ : num 0.475
 $ CI.upper :List of 3
  ..$ : num 0.578
  ..$ : num 0.614
  ..$ : num 0.781
> 
> 
> 
> str(df3.temp.vuln)
'data.frame':   3 obs. of  4 variables:
 $ treatment: chr  "both" "hyp" "nor"
 $ R        : num  0.1634 0.0447 0.985
 $ CI.lower : num  0.0397 0 0.9683
 $ CI.upper : num  0.234 0.137 0.993

2 个答案:

答案 0 :(得分:1)

问题似乎是列表df3.temp.swim中的3个成员本身都是类list
因此,

df3.temp.swim <- sapply(df3.temp.swim, unlist)

也应该工作。

答案 1 :(得分:0)

设法解决。我会发贴,以防其他人为此而苦苦挣扎。

您需要做的是使用tidyr中的'unnest()'函数。这可行:

unnest(df)

欢呼