我应该如何在 ggplot2 中使用我的数据创建线图,还是需要在 R 中重构我的数据?

Posted

技术标签:

【中文标题】我应该如何在 ggplot2 中使用我的数据创建线图,还是需要在 R 中重构我的数据?【英文标题】:How should I create a line plot with my data in ggplot2, or do I need to restructure my data in R? 【发布时间】:2021-09-18 07:36:49 【问题描述】:

在我在 R 中的数据集中,受访者受到刺激,并在基线、暴露后一小时和两小时后研究他们的反应。在 R 中,我按基线调整了数据。以下是我的数据的示例:

stimuli_no     base     hour   two_hour
1              0        0.02   -0.10
2              0        0.01   -0.03
3              0       -0.01    0.02
1              0       -0.05   -0.06
2              0        0.03    0.05
3              0        0.02    0.04

我想要的第一件事是通过 stimuli_no 获得每个时间间隔的平均值,这是我使用以下代码所做的:

transform(df, m_base = ave(base, stimuli_no), m_hour = ave(hour, stimuli_no),  m_twoh = ave(two_hour, stimuli_no))

现在我想制作一个折线图,其中 x 轴为基线、小时和两小时的时间间隔,y 轴为分数,每个刺激都有单独的线。这是一个例子:

是否有一种简单的方法可以在 R 中按原样处理我的数据,或者我是否需要重组我的数据?如果我需要重组,我会怎么做?

【问题讨论】:

大多数情况下,您需要将数据集重塑为长格式。可以以这种宽格式保留您的数据,但可能需要更多的工作。查看this question 得票最多的两个答案以查看主要选项(包括重塑)。 【参考方案1】:

查看pivot_longer(),它具有您正在寻找的功能。在长格式中,您还可以使用group_by() 命令获取每个时间间隔的平均值。这两个都是tidyverse 函数。

【讨论】:

以上是关于我应该如何在 ggplot2 中使用我的数据创建线图,还是需要在 R 中重构我的数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在ggplot2中使用希腊符号?

如何在ggplot2中将一条线从实线过渡到点线

用单独的线型在 ggplot2 中绘制缺失值

在 ggplot2 中使用计数数据向直方图添加密度线

在 ggplot2 中向线型图例添加附加线

如何增加ggplot2中分组条之间的空间?