我应该如何在 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 中重构我的数据?的主要内容,如果未能解决你的问题,请参考以下文章