楼主: harlon1976
1058 7

[问答] 程序错在哪里 [推广有奖]

  • 2关注
  • 27粉丝

版主

院士

54%

还不是VIP/贵宾

-

威望
1
论坛币
33781 个
通用积分
135.1232
学术水平
25 点
热心指数
39 点
信用等级
17 点
经验
59249 点
帖子
1928
精华
0
在线时间
4352 小时
注册时间
2005-8-27
最后登录
2025-12-9

楼主
harlon1976 发表于 2015-3-19 10:25:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
定义一个函数入如下:
xx=function(ma)
{
numr=nrow(ma)
numc=ncol(ma)
varb=colnames(ma)
z=matrix[numr,1]
for(i in 1:numr)
{
for(j in 1:numc)
{
if ma[i,j]=='TRUE' then z[i,1]=varb[j]
}
}
return(z)
}
以下是错误的提示:
错误: 意外的符号 in:
"{
if ma"

请问,问题出在哪里?谢谢!

二维码

扫码加我 拉你入群

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

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

关键词:function matrix RETURN Names name 程序

沙发
jiangbeilu 学生认证  发表于 2015-3-19 12:44:31
  1. if ma[i,j]=='TRUE'

  2. if ma[i,j]==TRUE
复制代码

藤椅
harlon1976 发表于 2015-3-19 15:09:03
jiangbeilu 发表于 2015-3-19 12:44
谢谢您的指导,但我按照您的修改,还是出现和原来一样的错误。

板凳
biohuang 发表于 2015-3-19 15:24:40
  1. if ma[i,j]=='TRUE' then z[i,1]=varb[j]
复制代码


改成

  1. if (ma[i,j]==TRUE) { z[i,1]=varb[j] }
复制代码


其他地方没仔细看
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

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

报纸
harlon1976 发表于 2015-3-19 22:49:13
biohuang 发表于 2015-3-19 15:24
改成
谢谢您的指导,你的是正确的,我想问一下if 为什么要用圆括号,而赋值语句用大括号,且没有then 语句?
能解释一下吗?谢谢!

地板
-Batistuta- 发表于 2015-3-21 10:30:55
harlon1976 发表于 2015-3-19 22:49
谢谢您的指导,你的是正确的,我想问一下if 为什么要用圆括号,而赋值语句用大括号,且没有then 语句?
...
这些没有为什么的,R的语法就是这样,if后面要圆括号,但紧接着如果只是一行,可以不用后面的大括号,if (ma[i,j]==TRUE) z[i,1]=varb[j] 这样也是对的

7
biohuang 发表于 2015-3-21 13:27:01
harlon1976 发表于 2015-3-19 22:49
谢谢您的指导,你的是正确的,我想问一下if 为什么要用圆括号,而赋值语句用大括号,且没有then 语句?
...
不用客气。还有,补充楼上,赋值还是用“<-”吧,用“=”看起来挺乱。

8
harlon1976 发表于 2015-3-21 14:17:10
谢谢两位的指导,我把SAS的语法用到R中了,谢谢!!祝周末开心!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-27 05:54