楼主: jacosis
2776 4

[问答] 能不能帮我看看这个分段函数错在哪里了? [推广有奖]

  • 0关注
  • 3粉丝

VIP

已卖:168份资源

讲师

8%

还不是VIP/贵宾

-

威望
0
论坛币
502 个
通用积分
1.0007
学术水平
15 点
热心指数
17 点
信用等级
11 点
经验
2503 点
帖子
295
精华
0
在线时间
67 小时
注册时间
2008-8-23
最后登录
2018-3-19

楼主
jacosis 发表于 2011-12-5 21:53:04 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
想要用R画一个分段函数的函数曲线,怎么调试程序都通不过:
myfun <- function(x){
  y <- rep(NA, length.out=length(x))
  for(i in 1:length(x)){
    if(x<0) y <- -x
    if(x>=0 & x<=1) y <- (x)^2
    if(x>1) y <- 1
                               }
  return(y)
                                }
程序最后提示错误为:In readLines(file) : 读'myfun.R'时最后一行未遂

谢谢。
另外,后来发现,即使有上面的错误提示,这个函数是可以调用的,图也是可以画出来的,但是为什么会有这个警告信息呢?
二维码

扫码加我 拉你入群

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

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

关键词:分段函数 Fun 程序

沙发
qoiqpwqr 发表于 2011-12-6 01:27:20
你的循环里面的 i 没有用到。

藤椅
qoiqpwqr 发表于 2011-12-6 01:32:57
函数可以这样写:

myfun <- function(x) {
    y <- x^2
    y[x > 1] <- 1
    y[x < 0] <- -x[x < 0]
    return(y)
}

板凳
waterhorse 发表于 2012-1-1 14:13:03
Xie Xie for sharing,

报纸
楚韵荆风 学生认证  发表于 2012-1-1 18:55:00
lz这样的分段函数执行效率很低下,一旦样本量较大,循环较多计算起来就很慢;建议用这种不带循环的:
myfun = function(x){
  n=length(x);y=rep(0,n)
  l=which(x<0)
  c=which(abs(x-1/2)<=1/2)
  r=which(x>1)
  y[l]=-x[l]
  y[c]=x[c]^2
  y[r]=1
  return(y)
}
共享是一种彼此的快乐

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

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