Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R “之后如何绘制(带错误条)”;“聚合”吗;?_R - Fatal编程技术网

R “之后如何绘制(带错误条)”;“聚合”吗;?

R “之后如何绘制(带错误条)”;“聚合”吗;?,r,R,我有两个维度的数据(2次治疗x 3天),目标是用两条线绘制线图,表示平均值和误差条。然而,当我使用“绘图”来绘制平均值时,结果是3 X 3平方的图形(不知道它是什么) 数据: 我使用aggregate计算平均值和标准误差。然而,当我使用plot时,结果很奇怪 dta=read.table(file ='dta.csv', header = T, sep = ',') dta.mean=aggregate(dta[,-1:-2], list(dta$Treatment),mean) plot(

我有两个维度的数据(2次治疗x 3天),目标是用两条线绘制线图,表示平均值和误差条。然而,当我使用“绘图”来绘制平均值时,结果是3 X 3平方的图形(不知道它是什么)

数据:

我使用
aggregate
计算平均值和标准误差。然而,当我使用
plot
时,结果很奇怪

dta=read.table(file ='dta.csv', header = T, sep = ',')

dta.mean=aggregate(dta[,-1:-2], list(dta$Treatment),mean)

plot(dta.mean[1,2:4])
我期望线图由两条线组成(一条是处理A,另一条是处理B),y值是带有误差条的平均值。 请帮帮我:(非常感谢

图1:这是错误的结果

图2:预期的一个

让我们一步一步来做这件事。我希望这会对你有所帮助

首先,让我们看看
aggregate
方法的结果是什么:

  Group.1       D1       D2       D3
1       A 5.000000 6.000000 5.666667
2       B 2.666667 1.666667 2.666667
然后,对
plot
的调用包括
dta.mean[1,2:4]
以便选择第1行和第2列到第4列进行绘图(作为数据帧):

请注意,这仅包括组“A”(第1行)和3个数值变量(用于D1、D2和D3)

在数据帧上调用
plot
时,您将得到问题中提供的散点图矩阵。这显示了6个散点图(D1与D2、D2与D1、D1与D3、D3与D1、D2与D3、D3与D2)。这6个图中的每一个都只有一个点。例如,D1与D2的比值为D1=5,D2=6

以下是我将采取的方法:

首先,我将
melt
数据(
restrape2
package):

这将为您提供以下用于打印的信息:

  Treatment variable    value
1         A       D1 5.000000
2         B       D1 2.666667
3         A       D2 6.000000
4         B       D2 1.666667
5         A       D3 5.666667
6         B       D3 2.666667
使用
ggplot2

library(ggplot2)
ggplot(dta.mean, aes(x = variable, y = value, group = Treatment, col = Treatment)) +
  geom_line()

要执行errorbars,您需要再次聚合数据(类似于为means所做的操作),并可能使用
geom\u errorbar


我希望这会对你有所帮助。

让我们一步一步来。我希望这会对你有所帮助

首先,让我们看看
aggregate
方法的结果是什么:

  Group.1       D1       D2       D3
1       A 5.000000 6.000000 5.666667
2       B 2.666667 1.666667 2.666667
然后,对
plot
的调用包括
dta.mean[1,2:4]
以便选择第1行和第2列到第4列进行绘图(作为数据帧):

请注意,这仅包括组“A”(第1行)和3个数值变量(用于D1、D2和D3)

在数据帧上调用
plot
时,您将得到问题中提供的散点图矩阵。这显示了6个散点图(D1与D2、D2与D1、D1与D3、D3与D1、D2与D3、D3与D2)。这6个图中的每一个都只有一个点。例如,D1与D2的比值为D1=5,D2=6

以下是我将采取的方法:

首先,我将
melt
数据(
restrape2
package):

这将为您提供以下用于打印的信息:

  Treatment variable    value
1         A       D1 5.000000
2         B       D1 2.666667
3         A       D2 6.000000
4         B       D2 1.666667
5         A       D3 5.666667
6         B       D3 2.666667
使用
ggplot2

library(ggplot2)
ggplot(dta.mean, aes(x = variable, y = value, group = Treatment, col = Treatment)) +
  geom_line()

要执行errorbars,您需要再次聚合数据(类似于为means所做的操作),并可能使用
geom\u errorbar


我希望这会对您有所帮助。

您能添加一张预期和当前绘图的图片吗?@NelsonGon当然,我已经编辑了内容,图片都在开头!看看为什么结果会是这样?有人能帮我指出编码中的错误吗?谢谢>您能添加预期和当前绘图的图片吗?@NelsonGon当然,我已经编辑了内容,图像就在开头!看看为什么结果会是这样?有人能帮我指出编码中的错误吗?谢谢>
library(ggplot2)
ggplot(dta.mean, aes(x = variable, y = value, group = Treatment, col = Treatment)) +
  geom_line()