[英]How to pass vector of column names into multidplyr's partition function in R
[英]How can I pass column names in an R function?
我想在函數內部創建一個數據框,該數據框是數據框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")
現在,發生這種情況是因為,如果您注意到df[,c("col_name")]
則參數“ col_name”為字符串
關於問題2:這是不使用cbind
一步cbind
QPP<-function(dat,xvar,yvar)
{
colnames<- c(xvar, yvar)
new_df <<- dat[, c(colnames)]
}
QPP(dat=d,xvar = "area" ,yvar = "f.ecdf")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.