使用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
答案 0 :(得分:1)
问题似乎是列表df3.temp.swim
中的3个成员本身都是类list
。
因此,
df3.temp.swim <- sapply(df3.temp.swim, unlist)
也应该工作。
答案 1 :(得分:0)
设法解决。我会发贴,以防其他人为此而苦苦挣扎。
您需要做的是使用tidyr中的'unnest()'函数。这可行:
unnest(df)
欢呼