楼主: dqj1551007438
1420 5

[问答] R语言编程 [推广有奖]

  • 0关注
  • 2粉丝

本科生

9%

还不是VIP/贵宾

-

威望
0
论坛币
78 个
通用积分
1.0200
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
538 点
帖子
28
精华
0
在线时间
92 小时
注册时间
2014-4-23
最后登录
2021-8-12

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
求矩阵的偶数行时,为什么这个程序是错的
dee=function(m) {
  a=nrow(m)/2
  b=ncol(m)
  k=matrix(0,nrow=a,byrow=FALSE)
  for(i in 1:a)
    k[i,]=m[i*2,]

  k
}



错误提示为:Error in k[i, ] = m[i * 2, ] :
  number of items to replace is not a multiple of replacement length
不知道是什么意思?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R语言编程 语言编程 R语言 replacement placement R语言编程

沙发
cheetahfly 在职认证  发表于 2016-7-27 08:12:47 |只看作者 |坛友微信交流群
你在自己检验一下,代码matrix(0, nrow=3, byrow=FALSE)出来的是什么,你就清楚错在哪里了。
矩阵的偶数行可以直接得到:
m[seq(2, nrow(m), by = 2), ]

使用道具

藤椅
dqj1551007438 学生认证  发表于 2016-7-27 10:50:15 |只看作者 |坛友微信交流群
cheetahfly 发表于 2016-7-27 08:12
你在自己检验一下,代码matrix(0, nrow=3, byrow=FALSE)出来的是什么,你就清楚错在哪里了。
矩阵的偶数行 ...
,我还想问一下,假设有360天,每一天的数据都是一个等阶的矩阵,这样用R来将每30天的矩阵求和,形成12个矩阵呢?谢谢!

使用道具

板凳
cheetahfly 在职认证  发表于 2016-7-27 12:09:19 |只看作者 |坛友微信交流群
dqj1551007438 发表于 2016-7-27 10:50
,我还想问一下,假设有360天,每一天的数据都是一个等阶的矩阵,这样用R来将每30天的矩阵求和, ...
一个matrix其实就是一个特殊的vector,360个矩阵就是360个vectors,这下明白了吧。

使用道具

报纸
dqj1551007438 学生认证  发表于 2016-7-27 21:51:23 |只看作者 |坛友微信交流群
cheetahfly 发表于 2016-7-27 12:09
一个matrix其实就是一个特殊的vector,360个矩阵就是360个vectors,这下明白了吧。
比如一年360天,每一天有43行数据,我们需要把每43行的数据看做一个矩阵,这样就有了360个43*43的矩阵。然后再以30天为一个月,每30个矩阵相加,就得到12个月的矩阵。。这中间怎么定义矩阵序列和n个序列求和,都遇到问题了
D=array(0,dim=c(43,43,360))
for(j in 1:365){                   #将每一天弄成一个矩阵,每一天是43行
    p[j]=43*j-42  
    q[j]=43*j
    D[j]=rbind(x[c(p[j]:q[j]),])  #第j天的矩阵

下面是求和
for(k in 1:12)    {                  #一共有12个月
   g[k]=sum(a[c(1:k)])-a[k]+1
   #计算出每个月的第一天和最后一天的时间
   d[k]=sum(a[c(1:k)])
   M[,,k]=apply(D[,,seq(g[k],d[k],by=1)],c(1,2),sum)       #将每个月中所有天数的矩阵相加


这里的D定义是不是对的?是应该写成D[,,j]还是D[,j]还是怎么办?运行的时候老出错

另外,求和的部分有问题吗?

感觉最主要的是怎么定矩阵序列

使用道具

地板
cheetahfly 在职认证  发表于 2016-7-28 08:44:23 |只看作者 |坛友微信交流群
dqj1551007438 发表于 2016-7-27 21:51
比如一年360天,每一天有43行数据,我们需要把每43行的数据看做一个矩阵,这样就有了360个43*43的矩阵。然 ...
举例原始数据,和想要达到的结果数据,不要给出循环语句的代码,让别人顺着你的思路,搞清楚你错在哪里,然后再将你带出来是一件事倍功半的事。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-12 15:17