楼主: xiangqianzsh
43306 17

[问答] R中的if/else if 为何老是出错 [推广有奖]

  • 0关注
  • 0粉丝

已卖:15份资源

大专生

63%

还不是VIP/贵宾

-

威望
0
论坛币
190 个
通用积分
0.1200
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
4290 点
帖子
18
精华
0
在线时间
96 小时
注册时间
2012-3-12
最后登录
2017-9-21

楼主
xiangqianzsh 发表于 2014-5-28 09:23:37 |AI写论文
3论坛币
      我在R软件里面写了一个if/else if 的语句,但是总是出错,我也不知道错在哪里。总是提示:错误: 意外的'else' in "else"
    我要做的就是判断一个职位的学历要求,然后,把它们规范化为 “大专、本科、硕士、 博士” 四个值。高手们帮我看一下错在哪里了。。。多谢了。。。
    代码如下:

    temp <- "专科以上"
    if (grepl("专", temp))         #如果字段里面出现 专 字
        temp <- "大专"
    else if (grepl("本", temp))
        temp <- "本科"
    else if (grepl("硕", temp))
        temp <- "硕士"
    else if (grepl("博", temp))
        temp <- "博士"
    else
        temp <- "不限"

最佳答案

yywan0913 查看完整内容

结构 1 : if() xx else yy 一行; 结构 2: if() {xx} else {yy} 或者 if(){ xx }else #此处不能两行写 yy 结构3: { if else } 结构三括号中 可以任意写
关键词:else ELS LSE 我也不知道 Temp 学历要求 本科 博士 大专 软件

沙发
yywan0913 在职认证  发表于 2014-5-28 09:23:38
结构  1 :  if()  xx  else    yy    一行;
结构  2:   if()  {xx} else  {yy}  
                或者   if(){
                         xx
                         }else    #此处不能两行写
                         yy

结构3:  {
if   
else
}
结构三括号中  可以任意写

已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
award + 5 + 5 + 5 热心帮助其他会员
李会超 + 20 + 10 精彩帖子
complicated + 12 + 12 + 3 + 3 + 3 热心帮助其他会员

总评分: 经验 + 32  论坛币 + 22  学术水平 + 8  热心指数 + 8  信用等级 + 8   查看全部评分

是什么给了你自信

藤椅
ntsean 发表于 2014-5-28 10:31:58
少了 { }

板凳
complicated 在职认证  发表于 2014-5-28 11:17:25
yywan0913 发表于 2014-5-28 10:54
结构  1 :  if()  xx  else    yy    一行;
结构  2:   if()  {xx} else  {yy}  
                或者 ...
谢谢说明,再讨论一下哈
简单的可以用ifelse( 条件,真,假) 这样代码简洁一点~
复杂的,R里面有方便一点的分支结构吗?
我是没看到像SQL里面CASE那样的语句,if else if else套起来真的不方便
已有 1 人评分学术水平 热心指数 收起 理由
yywan0913 + 1 + 1 switch有点像吧

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

密码被盗??

报纸
xiangqianzsh 发表于 2014-5-28 14:07:35
yywan0913 发表于 2014-5-28 09:23
结构  1 :  if()  xx  else    yy    一行;
结构  2:   if()  {xx} else  {yy}  
                或者 ...
多谢,确实是这个问题,总算解决了。。。

地板
我家的顾客 发表于 2015-3-22 13:26:41
yywan0913 发表于 2014-5-28 09:23
结构  1 :  if()  xx  else    yy    一行;
结构  2:   if()  {xx} else  {yy}  
                或者 ...
太棒了!解决了我的问题!!

7
limanxue 发表于 2015-9-23 10:39:42
对于r中if else的问题很是无法形容啊。。。没想到就是一个格式的问题!!!

8
风雨统计 在职认证  发表于 2015-11-17 09:43:12
直接在控制台里粘贴或输入:
if(){

}
else
是不能正确执行的,控制台里是一行一行执行的,执行到‘}’时,R无法判断后面是不是还有else或else if。
如果使用source()来执行一个脚本,在脚本里是可以那样写的。

9
风雨统计 在职认证  发表于 2015-11-17 09:47:44
在R的控制台里输入:
if(){

}
else
是不能正确执行的,因为在控制台中是一行一行执行的,当执行到“}”时,R无法判断后面是不是有else或else if,只能当做没有了,于是执行到else的时候就会报错了。
但在R脚本里,并且是以source()执行或在包里执行的话,可以随便写{}与else的位置,都能正确执行。

10
XCc0900720130 发表于 2016-7-5 10:41:48
非常好,一个困扰我多久的问题,解决了。

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

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