全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
6963 5
2015-05-05
我是R语音新手,有一个问题希望能够在这里得到解答。
      问题如下:
      已知ziyuan是一个列向量,范围在(0,1000)
      而money是一个分段函数
      money= 7    ziyuan<=35
      money=7+(ziyuan-35)/5   ziyuan>35&ziyuan<=185
      money=37+(ziyuan-185)/6   ziyuan>185&ziyuan<=479
      我使用的代码是
         length(money)<-length(ziyuan)
money[ziyuan>=0&ziyuan<40]=7
money[ziyuan>=40&ziyuan<191]=7+(ziyuan[ziyuan>=40&ziyuan<197]-35)/5
money[ziyuan>185&ziyuan<=479]=37+(ziyuan[ziyuan>185&ziyuan<=479]-185/6
money[ziyuan>479&ziyuan<=832]=77+trunc((ziyuan[ziyuan>479&ziyuan<=832]-479)/7)
money[ziyuan>832]=127+trunc((ziyuan[ziyuan>832]-832)/8)

但是与老师给我的答案不一样
我不知道是不是我的格式错了
或者有没有更好的格式来写分段函数
谢谢各位了
二维码

扫码加我 拉你入群

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

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

全部回复
2015-5-8 17:53:39
money<-function(ziyuan){
    if(ziyuan<=35)
    money=7
    if(ziyuan>35&ziyuan<=185)
     money=7+(ziyuan-35)/5   
      if(ziyuan>185&ziyuan<=479)
      money=37+(ziyuan-185)/6  
      money
        }你参考一下吧。
二维码

扫码加我 拉你入群

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

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

2015-5-10 20:38:15
不行的吧,“条件的长度大于一,因此只能用其第一元素”ziyuan是向量,money也是向量,主要是想根据下标赋值。我这样的赋值会多出来很多空值。
二维码

扫码加我 拉你入群

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

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

2015-5-10 20:38:48
lww1993 发表于 2015-5-8 17:53
money
不行的吧,“条件的长度大于一,因此只能用其第一元素”ziyuan是向量,money也是向量,主要是想根据下标赋值。我这样的赋值会多出来很多空值。
二维码

扫码加我 拉你入群

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

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

2015-5-11 09:32:27
1286856087 发表于 2015-5-10 20:38
不行的吧,“条件的长度大于一,因此只能用其第一元素”ziyuan是向量,money也是向量,主要是想根据下标赋 ...
既然你用的是向量,那么的话,你用一个for循环,逐个根据ziyuan的值计算对应的money的值。
二维码

扫码加我 拉你入群

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

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

2015-5-14 07:35:24
lww1993 发表于 2015-5-11 09:32
既然你用的是向量,那么的话,你用一个for循环,逐个根据ziyuan的值计算对应的money的值。
我试试,谢谢你
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群