【发布时间】:2017-01-18 00:43:45
【问题描述】:
我想在函数内创建一个数据框,它是数据框 d 中的列选择
QPP<-function(dat,xvar,yvar){
varx <<- dat[,c(xvar)]
vary <<- dat[,c(yvar)]
a <- cbind(varx,vary)
a <- as.data.frame(a)
#Perform some operations
}
QPP(dat=d,xvar = area,yvar = f.ecdf)
但我收到一条错误消息:
eval(expr, envir, enclos) 中的错误:缺少参数,没有默认值
- 我该如何解决这个问题?
-
或者,我可以一步选择列名,而不是先选择然后绑定它吗?我不确定如何传递列名。
dput(droplevels(head(d,10))) structure(list(area = c(96.8656, 96.8656, 562.0274, 117.5855, 117.5855, 117.5855, 117.5855, 117.5855, 117.5855, 117.5855), tp = c(1.5, 1, 0.5, 4.5, 6, 8.25, 4.25, 5.75, 10.75, 20.25 ), f.ecdf = c(0.887918176006819, 0.812380140634988, 0.760387811634349, 0.0372895802258683, 0.00809716599190283, 0.0310036224163648, 0.300660558278287, 0.441721713189857, 0.152354570637119, 0.386852759428937)), .Names = c("area", "tp", "f.ecdf"), row.names = c(NA, -10L), class = c("data.table", "data.frame"))
【问题讨论】:
-
试试
QPP(dat=d,xvar = "area",yvar = "f.ecdf") -
我试过了。我没有得到一个带有数字的数据框,而是一个带有名称区域和 f.ecdf 的数据框。我必须先附加数据集吗?
-
你为什么不直接做
dat[,c("area","f.ecdf")]?为什么需要这个功能? -
在函数末尾添加
return(a)或将a <- as.data.frame(a)改为as.data.frame(a) -
@aichao 我需要对该数据框进行操作。请参阅编辑。
标签: r