gpt4 book ai didi

r - 如何选择行组并存储到变量?

转载 作者:行者123 更新时间:2023-12-04 10:11:52 25 4
gpt4 key购买 nike

我目前使用以下代码输入一个 csv 文件,根据一列绘制数据点并将 CpK 编号存储到一个变量。此代码用于计算整个数据集的 CpK,并且图表也有效。我现在正在计算数据集中每个月的 CpK 数(不需要绘图)。我查看了 data.table 文档以及其他 R 文档,但我很难只选择每个月的数据。

当前代码:(我本可以用一个公式计算 CpK,但我故意将其分解)

mydf <- read.csv('ID35.csv', header = TRUE, sep=",")
date <- strptime(mydf$DATETIME, "%Y/%m/%d %H:%M:%S")
plot(date,mydf$AVG,xlab='Date',ylab='AVG',main='Data')
abline(h=mydf$MIN,col=3,lty=1)
abline(h=mydf$MAX,col=3,lty=1)
grid(NULL,NULL,col="black")
legend("topright", legend = c(" ", " "), text.width = strwidth("1,000,000"), lty = 1:2, xjust = 1, yjust = 1, title = "Points")
myavg <-mean(mydf$AVG, na.rm=TRUE)
newds <- (mydf$AVG - myavg)^2
newsum <- sum(newds, na.rm=TRUE)
N <- length(mydf$AVG) - 1
newN <- 1/N
total <- newN*newsum
sigma <- total^(1/2)
USL <- mean(mydf$MAX, na.rm=TRUE)
LSL <- mean(mydf$MIN, na.rm=TRUE)
cpk <- min(((USL-myavg)/(3*sigma)),((myavg-LSL)/(3*sigma)))
cpk

这是数据集的样子(日期格式已经完成):

mydf(仅 24/1000 行):

Code           DATETIME AVG MIN TARG_AVG MAX
N9 2012/04/10 14:03:37 0.2647 0.22 0.25 0.27
NA 2012/03/30 07:48:17 0.2589 0.22 0.25 0.27
NB 2012/03/24 19:23:08 0.2912 0.22 0.25 0.27
NB 2012/03/25 16:10:17 0.2659 0.22 0.25 0.27
NC 2012/04/10 00:58:29 0.2622 0.22 0.25 0.27
ND 2012/04/14 18:32:52 0.2600 0.22 0.25 0.27
NG 2012/04/21 14:47:47 0.2671 0.22 0.25 0.27
NH 2012/04/09 20:31:17 0.2648 0.22 0.25 0.27
NL 2012/04/24 07:28:17 0.2527 0.22 0.25 0.27
NP 2012/04/23 13:26:50 0.2640 0.22 0.25 0.27
NQ 2012/04/14 20:30:42 0.2590 0.22 0.25 0.27
NS 2012/05/02 09:09:52 0.2651 0.22 0.25 0.27
NU 2012/05/04 13:07:49 0.2688 0.22 0.25 0.27
NV 2012/05/19 23:07:08 0.2716 0.22 0.25 0.27
NX 2012/05/03 02:00:13 0.2670 0.22 0.25 0.27
NY 2012/05/04 12:56:52 0.2680 0.22 0.25 0.27
NZ 2012/05/06 10:05:38 0.2697 0.22 0.25 0.27
O0 2012/05/07 22:01:11 0.2675 0.22 0.25 0.27
O3 2012/06/21 18:09:47 0.2606 0.22 0.25 0.27
04 2012/06/21 18:47:36 0.2545 0.22 0.25 0.27
51 2012/07/24 21:13:08 0.2541 0.22 0.25 0.27
O5 2012/07/26 16:54:09 0.2575 0.22 0.25 0.27
O6 2012/07/20 02:42:29 0.2603 0.22 0.25 0.27
OD 2012/08/25 20:56:55 0.2559 0.22 0.25 0.27
OH 2012/08/28 10:30:11 0.2372 0.22 0.25 0.27

在上表中,我唯一关心的两列是 DATETIME 和 AVG。一旦我有了每个月的新“myavg”变量,我就可以使用相同的公式来计算 CpK 数。我认为变量名称可能类似于“2012/08”,我认为代码应该类似于:

for(each month mydf$DATETIME) (date like 2012/04*,2012/05*)
monthavg <-(mydf$AVG, na.rm=TRUE)

有没有办法将每个月的 CpK 数字存储在我可以访问的变量中?

最佳答案

aggregate(mydf$AVG, list(month=months(as.Date(mydf$DATETIME))), mean)

# month x
# 1 April 0.2618125
# 2 August 0.2465500
# 3 July 0.2573000
# 4 June 0.2575500
# 5 March 0.2720000
# 6 May 0.2682429

关于r - 如何选择行组并存储到变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12217200/

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