全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
4783 5
2016-09-02
我编写了一个这样的函数,主要目的是做除法:
division_func <- function(x,y) {
if ( !is.na(x)  && !is.na(y) ) {
       z <- x/y
    } else {
          z =0
             }
return(z)
}
有一个data数据 集,包含 a,b两列,现要用a列数据除以b列数据得到一个新列,但下面的操作报错
data2 <- with(data, sapply( c(a, b), division_func(a, b),USE.NAME = F))  
此时,报错 显示:
Error in match.fun(FUN) :
  'division_func(a, b)'不是函数,也不是字符,也不是符號

但是,当我单独调用函数dividion_func(3,2)是可用的呀,这是为什么呢?
我应该怎么在数据框中调用这个函数呢?
二维码

扫码加我 拉你入群

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

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

全部回复
2016-9-2 20:28:43
mapply
二维码

扫码加我 拉你入群

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

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

2016-9-2 20:31:20
sapply里的那个函数你写 division_func 不用写后边的(a,b)
二维码

扫码加我 拉你入群

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

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

2016-9-2 21:02:49
复制代码
二维码

扫码加我 拉你入群

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

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

2016-9-3 07:03:42
czrdiao 发表于 2016-9-2 20:28
mapply
我用mapply试了下,可以用
data$c <- with(data, mapply(division_func, a, b))
谢谢!
二维码

扫码加我 拉你入群

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

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

2016-9-3 07:08:19
ntsean 发表于 2016-9-2 21:02
这样我之前有试过,是报错的,报错大概说的是 变量的length >1,不知道是为什么. 我觉得除法是适合向量的啊,为什么会报错呢?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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