gpt4 book ai didi

r - 在 R 中绘制来自 tapply 输出的数据

转载 作者:行者123 更新时间:2023-12-02 04:58:19 27 4
gpt4 key购买 nike

我是一个真正的初学者,正在尝试为我的硕士论文分析一些金属管 Material 损失的数据。我想比较不同管材在一段时间内 Material 损失的标准偏差。我创建了一些子矩阵并执行了一个tapply 来计算标准差。

我有以下脚本:

myfunctionSD <- function(mydata) { return(sd(mydata,na.rm=TRUE))}

Alltubes <- tapply(datIn$Material.loss.interval,
list(as.factor(datIn$Measurement.location),
as.factor(datIn$Tube.number)),
myfunctionSD)

其中的输出是一个表格,其列标题为 Tube.number,行标题为 Measurement.location

dput(head(Alltubes))

structure(c(0.871073958553372, NA, 0.697795091282526, NA, 0.838624866472886,
NA, 0.726992791242471, 0.807567484588899, NA, 0.598675787394729,
NA, 0.510990323891863, 0.81510216193526, NA, 1.09844645540173,
NA, 0.839816448199645, NA, 0.63972340253115, NA, 1.11485875917537,
NA, 0.883318358663128, NA, 0.86706340125676, NA, 1.21565055332783,
NA, 1.24692213662875, NA, 0.704210691776757, NA, 0.962002980998362,
NA, 1.00703215272093, NA), .Dim = c(6L, 6L), .Dimnames = list(
c("1", "10", "11", "12", "13", "14"), c("1", "2", "3", "4",
"5", "6")))

明确一点:1、2、3、4、5、6 是管号和列标题,1、10、11...是测量位置和行标题。

我想绘制不同的数据图,其中之一是:箱线图,x 轴为管编号,y 轴为导出标准差的分布。

我到处搜索并尝试了很多不同的方法,但我无法显示图表。

希望有人能帮助我,将不胜感激!

最佳答案

你不需要创建一个特殊的函数来做你想做的事,你可以将 na.rm=TRUE 传递给 tapply:

Alltubes <- tapply(datIn$Material.loss.interval,
list(as.factor(datIn$Measurement.location),
as.factor(datIn$Tube.number)),
sd, na.rm=TRUE)

然后你可以使用:

par(mfrow=c(2,2), mar=c(4,4,1,1), oma=c(1,1,1,1))

boxplot(Alltubes, names=colnames(Alltubes), xlab="Tube numbers",
ylab="standard deviation")

boxplot(t(Alltubes), names=rownames(Alltubes),
xlab="Measurement locations", ylab="standard deviation")

matplot(colnames(Alltubes), t(Alltubes), xlab="Tube numbers",
ylab="standard deviation", type="b", lty=1, pch=19)

matplot(rownames(Alltubes), Alltubes, xlab="Measurement locations",
ylab="standard deviation", type="b", lty=1, pch=19)

theplot

关于r - 在 R 中绘制来自 tapply 输出的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19380611/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com