全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2294 6
2017-01-19
要求是写一个函数function(type,attribute) type就是iris这个数据集里的Species, attribute就是长啊宽啊那些的,输入这个函数,自动把这个type里的这个attribute中最大最小值输出来。我现在大概思路是这样:

irisfilter<- function(type,attribute){
  #attach(iris)
  setosa<-subset(iris,Species=='setosa')
  versicolor<-subset(iris,Species=="versicolor")
  virginica<-subset(iris,Species=="virginica")

  if (type =='setosa'){

    if(attribute=='Sepal.Length'){
      max<-max(seota$Sepal.Length)
      list(max=max)


   }
    else if(attribute==Sepal.Width){

    }
    else if(attribute==Petal.Length){

    }
    else if(attribute==Petal.Width){


    }
    list("test")

  }

}

但是现在的问题就是运行函数,什么结果都没有,等于第一个if判断就没进去,求好心人士解答问题出在哪。。。



二维码

扫码加我 拉你入群

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

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

全部回复
2017-1-19 13:10:43
1. attach必须显示,否则你后面的名称属性将会找不到。2. 你第8行求最大值时,名称出错了(是setosa还是seota)。3. 第9行,只有list(max=max),而没有返回这个列表,所以显示不出你要返回的值,只有return(list(max=max))这样才能返回值。后面没看,都是空的。
二维码

扫码加我 拉你入群

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

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

2017-1-20 18:45:02
复制代码
二维码

扫码加我 拉你入群

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

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

2017-1-21 02:14:02
小朝 发表于 2017-1-20 18:45
写得很好,但是。。。哎 要求不能用library = =
二维码

扫码加我 拉你入群

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

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

2017-1-21 09:09:38
irisfilter<- function(type,attribute){
  tp = iris[iris$Species == type, attribute]
  return(list(ma = max(tp), mi = min(tp)))
}
irisfilter('setosa','Petal.Width')

少年,楼上写的很好了,会用library也是一种能力,未来是你的。
二维码

扫码加我 拉你入群

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

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

2017-1-21 10:59:20
czrdiao 发表于 2017-1-21 09:09
irisfilter
强,简单有效。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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