【发布时间】:2020-07-02 20:53:11
【问题描述】:
在R 中使用ggplot2 一次绘制多个变量时,如何省略NA 条目以便连接线图?
如您所见,我的数据集充满了NA 条目。 (我正在使用我的举重训练来学习如何使用R。由于我每次锻炼都没有做同样的运动,所以我一定会有NA 条目。)我知道我可以省略带有NA 条目的行,但这会删除我数据框中的每一行。
是否可以将我的数据框绘制为没有换行符的连续线图?
ss <- structure(list(date = structure(c(18421, 18423, 18425, 18428,
18431, 18435), class = "Date"), bw = c(NA, NA, NA, 95.4, NA,
NA), squat = c(40, 42.5, 45, 47.5, 50, 52.5), deadlift = c(60,
NA, 62.5, 65, 67.5, 70), press = c(25, NA, 27.5, NA, 30, NA),
bench = c(NA, 40, NA, 42.5, NA, 45), chinup = c(NA, NA, NA,
NA, NA, NA), clean = c(NA, NA, NA, NA, NA, NA)), row.names = c(NA,
-6L), class = "data.frame")
这是我到目前为止编写的代码。首先,我尝试使用 tidyverse 清理我的数据。然后我想在一个ggplot 中绘制数据集。
ss <- ss %>%
select(date, bw, squat, deadlift, press, bench, chinup, clean) %>%
gather(key = "lift", value = "weight", -date, -bw)
ggplot(ss, aes(x = date, y = weight)) +
geom_point(aes(color = lift)) +
geom_line(aes(color = lift, linetype = lift))
【问题讨论】:
-
收集后丢弃 NA,例如
filter(!is.na(weight) -
@stefan 这行得通,但我不得不从集合中排除
bw,因为它主要包含 NA。谢谢你的帮助。 (你想写一个答案还是我应该自己回答我的问题?) -
@kaos。是的。对不起。
drop_na有点激进。过滤器是要走的路。 -
@stefan 啊,完美。谢谢!