col中相关或类似函数R替代Matlab中的sum

时间:2015-02-14 22:51:24

标签: r matlab

我正在努力将在matlab中实现的复杂项目转换为R.我在将代码转换为R时遇到问题(一种有效的方法) Matlab的:

 for r = 1:nSubjects
               temp = reshape(values(r,:),4,10);
               temp = [sum(temp([1 2],:));sum(temp([3 4],:))];
               temp = reshape(temp,1,20);
               X(r,nextCol:(nextCol+19)) = temp;
 end

我尝试过可能的方法,包括sum,colSums函数。但是,我收到错误

我的R代码

for(r in 1:nSubjects){
          temp = values[1,];
          temp <- matrix(temp, 4, 10);
          colSums(temp[1:2,]) <- this or something similar to do steps 2 & 3 
         }

colSums在colSums中给出错误(temp [1:2,]):&#39; x&#39;必须是数字。不确定如何去做。由于我是R的新手,所以需要任何帮助。

谢谢,

编辑:使用请求的信息更新帖子(再次感谢您的帮助)

算法: 该算法用于分析按10组分组的数据,其中每组依次由4个值组成。 例如,下面是值(变量)中的1行的内容。

0.100000000000000 0.500000000000000 0.100000000000000 0.300000000000000 0.200000000000000 0.500000000000000 0.200000000000000 0.100000000000000 0.200000000000000 0.500000000000000 0.200000000000000 0.100000000000000 0.400000000000000 0.200000000000000 0.200000000000000 0.200000000000000 0.100000000000000 0.300000000000000 0.300000000000000 0.300000000000000 0.200000000000000 0.100000000000000 0.200000000000000 0.500000000000000 0.100000000000000 0.600000000000000 0.200000000000000 0.100000000000000 0.200000000000000 0.500000000000000 0.100000000000000 0.200000000000000 0.200000000000000 0.200000000000000 0.300000000000000 0.300000000000000 0 0.300000000000000 0.400000000000000 0.300000000000000

我想将此转换为像

这样的摘要

0.600000000000000 0.400000000000000 0.700000000000000 0.300000000000000 0.700000000000000 0.300000000000000 0.600000000000000 0.400000000000000 0.400000000000000 0.600000000000000 0.300000000000000 0.700000000000000 0.700000000000000 0.300000000000000 0.700000000000000 0.300000000000000 0.400000000000000 0.600000000000000 0.300000000000000 0.700000000000000

其中上面一行中的每个值是值中的两个连续数字的总和(变量名称行)。

对于值中的行        添加连续的列值,因此值有40列,它将减少到20列        将创建的摘要数据行附加到名为temp的新矩阵。

结束

班级(临时)的输出 [1]&#34;矩阵&#34;

0 个答案:

没有答案