我写了以下函数:
x <- 1:4
y <- c(1,2,7,4)
mydf <- data.frame(a=x,b=x,c=x,d=x,y=y)
practice <- function(x) if( x[1] == x[5]) {
foo <- (x[2])
return(foo)
} else {
bar <- x[3] + x[4]
foobar <- x[2] - bar
return(foobar)
}
newmydf <- apply( mydf, 1, practice)
这在data.frame
提供的情况下工作正常。但是我有另一个data.frame
,我不断得到
Error in x[3] + x[4] : non-numeric argument to binary operator
尽管有以下str()
'data.frame': 133 obs. of 19 variables:
$ : chr ...
$ : int ...
$ : int ...
$ : int ...
$ : int ...
$ : int ...
$ : int ...
$ : int ...
$ : int ...
$ : int ...
$ : int ...
$ : int ...
$ : int ...
$ : int ...
$ : int ...
$ : int ...
$ : num ...
$ : int
$ : int
我可能会犯什么小错误?我已经开始了一个新的会话,但我仍然遇到同样的问题。