0
具有以下功能:呼叫从给定函数向量R中的函数
setTypes <- function(df2, ...) {
fns <- as.list(substitute(list(...)))
for(i in 1:length(df2)) {
if(fns[i] == '') {
next
}
df2[i,] <- fns[i](df2[i,])
}
return(df2)
}
要做到这一点:
test<-setTypes(sls,c('','as.Date','','','as.numeric','as.numeric'))
的想法是改变类型的字段的数据而不必为每个字段执行sls$field <- as.numeric(sls$field)
。
我写一个函数像这样的工作:
fn <- function(t) {
return(t("55.55000"))
}
和输出是这样的:
> fn(as.numeric)
[1] 55.55
然而
,我想不通为什么要么做可变长度参数作为列表并将其称为list[index](input)
不起作用。甚至路过的功能的载体像c(as.Date, as.numeric, as.character)
和做c[1]('2015-10-10') # as.Date('2015-10-10')
我收到了错误的企图,将非功能'。我一直在使用call
也试过,但无济于事。帮帮我?
我很想说,这是[this](http://stackoverflow.com/q/7680959/324364)问题的重复... – joran
由于你的函数列表是一个字符列表,你会得到这个错误。跳过'或使用do.call – nist