我想做这样的事情:
我有许多看起来如下的矩阵:
head(cluster1,n=10)
beg end IBI len durn mean.isis SI
[1,] 6 8 NA 3 0.109883 0.05494150 1
[2,] 10 22 0.363067 13 0.350182 0.02918183 1
[3,] 27 30 0.589205 4 0.128999 0.04299967 1
[4,] 31 36 0.292974 6 0.048144 0.00962880 1
[5,] 37 44 0.182525 8 0.227413 0.03248757 1
[6,] 45 47 0.130840 3 0.063720 0.03186000 1
[7,] 48 56 0.413761 9 0.182949 0.02286862 1
[8,] 59 65 0.475499 7 0.192862 0.03214367 1
[9,] 67 69 0.208579 3 0.027613 0.01380650 1
[10,] 70 74 0.116538 5 0.295098 0.07377450 1
head(cluster2,n=10)
beg end IBI len durn mean.isis SI
[1,] 1 4 NA 4 0.011045 0.003681667 1
[2,] 37 41 24.749159 5 0.037666 0.009416500 1
[3,] 47 49 4.622307 3 0.008638 0.004319000 1
[4,] 59 61 6.767432 3 0.008638 0.004319000 1
[5,] 64 67 3.499121 4 0.012178 0.004059333 1
[6,] 83 85 7.063805 3 0.007504 0.003752000 1
[7,] 89 91 2.827788 3 0.015576 0.007788000 1
[8,] 92 94 1.628137 3 0.007930 0.003965000 1
[9,] 95 97 0.576744 3 0.008638 0.004319000 1
[10,] 103 105 10.000201 3 0.009204 0.004602000 1
我想创建一个for循环,在其中创建一个矩阵第5行值的平均值的列表。
mean(cluster1[,5])
[1] 0.2731692
mean(cluster2[,5])
[1] 0.01214404
它会给出这样的结果:
means(0.2731692,0.01214404)
我试图做的事情:
means=''
for(i in 1:100){names.append(mean(str('cluster'+i)[,5]))}
这似乎不像我希望的那样。
非常感谢您的帮助!
谢谢
尝试这样的事情:
means <- numeric(length = 100)
for (i in seq_len(length.out = 100))
{
means[i] <- mean(x = get(x = paste0("cluster", i))[, 5])
}
这将以以下格式返回向量:c(0.2731692,0.01214404, ...)
。如果要用空格分隔的字符串,请执行以下操作:
paste0(means, collapse=" ")
希望这会有所帮助。
您可以使用mget
获取列表中的所有矩阵,然后获取第5列的mean
。
sapply(mget(paste0('cluster', 1:2)), function(x) mean(x[, 5]))
用您拥有的数字2
矩阵替换1:2
中的cluster
。