楼主: Childring
1868 9

[问答] 关于R语言的两个警告问题:数据有n个元素,只有第一个被使用;数据的行数不是向量长度 [推广有奖]

  • 0关注
  • 0粉丝

初中生

80%

还不是VIP/贵宾

-

威望
0
论坛币
208 个
通用积分
1.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
263 点
帖子
12
精华
0
在线时间
26 小时
注册时间
2017-1-8
最后登录
2020-3-22

15论坛币
fd33b74ea90abdf439d42badf17a299.png

如图,我是用R语言编程写一个贪吃蛇矩阵的函数,运行后能出来想要的矩阵但是报了两类警告,想请教各位大佬这种情况是怎么回事,要怎么处理才能避免呢?
关键词:R语言 R语言编程 语言编程 怎么处理 贪吃蛇

回帖推荐

zhou1_20 发表于8楼  查看完整内容

沙发
zhou1_20 发表于 2019-3-23 17:03:26 |只看作者 |坛友微信交流群
  1. f <- function(n){
  2.   if(n==1) return(matrix(1))
  3.   else if(n==2) return(matrix(c(1,4,2,3),nrow=2))
  4.   else{
  5.     a <- seq((4*n-4),(3*n-1),-1)
  6.     b <- (n+1):(2*n-2)
  7.     c <- 1:n
  8.     d <- seq((3*n-2),(2*n-1),-1)
  9.     return(rbind(c,cbind(a,f(n-2)+4*n-4,b),d))
  10.   }
  11. }
  12. f(5)
复制代码

使用道具

藤椅
Childring 发表于 2019-3-23 17:05:27 |只看作者 |坛友微信交流群
f <- function(n){
  if(n==1) return(matrix(1))
  else if(n==2) return(matrix(c(1,4,2,3),nrow=2))
  else{
    a <- (4*n-4):(3*n-1):-1
    b <- (n+1):(2*n-2)
    c <- 1:n
    d <- (3*n-2):(2*n-1):-1
    return(rbind(c,cbind(a,f(n-2)+4*n-4,b),d))
  }
}

使用道具

板凳
Childring 发表于 2019-3-23 17:05:59 |只看作者 |坛友微信交流群
上楼是代码

使用道具

报纸
zhou1_20 发表于 2019-3-23 17:06:29 |只看作者 |坛友微信交流群
你运行下
1:5:-1
就知道原因了,R中没有这样的表达
已有 1 人评分论坛币 收起 理由
cheetahfly + 1 热心帮助其他会员

总评分: 论坛币 + 1   查看全部评分

使用道具

地板
Childring 发表于 2019-3-23 17:08:44 |只看作者 |坛友微信交流群
顺便问一下怎么把这个矩阵的标签去掉呢? 我想了很久names(x) <- NULL在上面递归函数里面好像加不上去

使用道具

7
Childring 发表于 2019-3-23 17:14:16 |只看作者 |坛友微信交流群
zhou1_20 发表于 2019-3-23 17:07
多谢!我可能是把matlab的语法和R搞混了,顺便问一下怎么去掉矩阵的行列标签呢?我想了很久names(xx) <- NULL好像加不进这个递归函数里面

使用道具

8
zhou1_20 发表于 2019-3-24 10:03:41 |只看作者 |坛友微信交流群
Childring 发表于 2019-3-23 17:14
多谢!我可能是把matlab的语法和R搞混了,顺便问一下怎么去掉矩阵的行列标签呢?我想了很久names(xx)
  1. re=rbind(c,cbind(a,f(n-2)+4*n-4,b),d)
  2.     dimnames(re)=NULL
  3.     return(re)
复制代码

使用道具

9
Childring 发表于 2019-3-24 11:08:00 |只看作者 |坛友微信交流群
zhou1_20 发表于 2019-3-24 10:03
感谢!

使用道具

10
Childring 发表于 2019-3-24 11:18:07 |只看作者 |坛友微信交流群
zhou1_20 发表于 2019-3-24 10:03
开始一直以为递归函数的调用只能在return语句里面……大概是之前用python的时候在函数主题里面调用函数本身结果报错了(当然也可能是我函数写错了)

使用道具

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

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

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

GMT+8, 2024-5-12 08:53