我正在尝试在函数中使用数据框的内容,这是我的问题的简化示例。
df <- data.frame(v1=1:10,v2=23:32)
df2 <- data.frame(v1=1:3,v2=3:5)
fxm <- function(x,y,q)
{
return(cbind(q[q[,2]==x,],y))
}
mapply(fxm,df[,1],df[,2],q=df2)
q[, 2] 中的错误:维数不正确
如果我添加打印语句: df <- data.frame(v1=1:10,v2=23:32) df2 <- data.frame(v1=1:3,v2=3:5)
fxm <- function(x,y,q)
{
print(q)
return(cbind(q[q[,2]==x,],y))
}
mapply(fxm,df[,1],df[,2],q=df2)
我得到:
[1] 1 2 3
q[, 2] 中的错误:维数不正确
由于某种原因,数据框被转换为其第一列的向量。如何阻止这种情况发生,并使我的函数可以访问整个数据框?
我正在尝试选择数据帧的子集并根据函数的其他两个参数返回它,这就是为什么我需要将整个数据帧传递给函数的原因。