我在 R 中的嵌套 for 循环有什么问题?
What's wrong with my nested for loop in R?
fname = file.choose()
two = read.csv(fname.header=T)
rec = two$Receipt
del = two$Delivery
date = two$Date
net = rec-del
yrec = matrix(rec,nrow=365,ncol=4,byrow=F)
ydel = matrix(del,nrow=365,ncol=4,byrow=F)
ynet = matrix(net,nrow=365,ncol=4,byrow=F)
yrecsum = 0
yrecavg = 0
for(i in 1:4)
{
for(j in 1:365)
{
yrecsum[i] = yrecsum[i]+yrec[j,i]
}
yrecavg[i] = yrecsum[i]/365
}
所以我有三个相同大小的矩阵,行上的天数为整数(从 1 到 365),列上的年数为整数(1 到 4)。每个矩阵都填充了我正在处理的数据。
我试图找到所有三个矩阵的每一列的平均值,我想将这些平均值放入每个矩阵的向量中。
我环顾四周,找到了一些关于动物园库和 chron 库等的信息,但我无法使用它们。
这应该可以帮助您入门(即使我会将矩阵转换为 data.frames):
#some sample data
m <- matrix(sample(10000, 365*4),365,4)
# get the mean of all the columns of your matrix
colMeans(m)
如果你有 3 个矩阵并且你想合并我会做的结果:
# some sample data:
m1 <- matrix(sample(10000, 365*4),365,4)
m2 <- matrix(sample(10000, 365*4),365,4)
m3 <- matrix(sample(10000, 365*4),365,4)
do.call("cbind", lapply(list(m1,m2,m3), colMeans))
lapply(list(yrec, ydel, ynet), colMeans)
[[1]]
[1] 732.9370 731.9836 705.3808 751.6986
[[2]]
[1] 704.7178 714.2877 735.4822 767.5123
[[3]]
[1] 749.1041 715.4164 711.1425 746.3370
#Data
yrec <- matrix(sample(365*4), ncol=4)
ydel <- matrix(sample(365*4), ncol=4)
ynet <- matrix(sample(365*4), ncol=4)
fname = file.choose()
two = read.csv(fname.header=T)
rec = two$Receipt
del = two$Delivery
date = two$Date
net = rec-del
yrec = matrix(rec,nrow=365,ncol=4,byrow=F)
ydel = matrix(del,nrow=365,ncol=4,byrow=F)
ynet = matrix(net,nrow=365,ncol=4,byrow=F)
yrecsum = 0
yrecavg = 0
for(i in 1:4)
{
for(j in 1:365)
{
yrecsum[i] = yrecsum[i]+yrec[j,i]
}
yrecavg[i] = yrecsum[i]/365
}
所以我有三个相同大小的矩阵,行上的天数为整数(从 1 到 365),列上的年数为整数(1 到 4)。每个矩阵都填充了我正在处理的数据。
我试图找到所有三个矩阵的每一列的平均值,我想将这些平均值放入每个矩阵的向量中。
我环顾四周,找到了一些关于动物园库和 chron 库等的信息,但我无法使用它们。
这应该可以帮助您入门(即使我会将矩阵转换为 data.frames):
#some sample data
m <- matrix(sample(10000, 365*4),365,4)
# get the mean of all the columns of your matrix
colMeans(m)
如果你有 3 个矩阵并且你想合并我会做的结果:
# some sample data:
m1 <- matrix(sample(10000, 365*4),365,4)
m2 <- matrix(sample(10000, 365*4),365,4)
m3 <- matrix(sample(10000, 365*4),365,4)
do.call("cbind", lapply(list(m1,m2,m3), colMeans))
lapply(list(yrec, ydel, ynet), colMeans)
[[1]]
[1] 732.9370 731.9836 705.3808 751.6986
[[2]]
[1] 704.7178 714.2877 735.4822 767.5123
[[3]]
[1] 749.1041 715.4164 711.1425 746.3370
#Data
yrec <- matrix(sample(365*4), ncol=4)
ydel <- matrix(sample(365*4), ncol=4)
ynet <- matrix(sample(365*4), ncol=4)