R 重用函数不起作用
功能:R 重用函数不起作用,r,R,功能: myFunc=function(from) { ss=unlist(strsplit(from,":")) as.numeric(ss[1])*24*60+as.numeric(ss[2])*60+as.numeric(ss[3]) } 在这种情况下效果非常好: myFunc("61:35:00") myFunc("61:36:00") 但在我需要的用例中,只有1次有效(在csv文件的第一个字符串上): setClass('myTime')
myFunc=function(from) {
ss=unlist(strsplit(from,":"))
as.numeric(ss[1])*24*60+as.numeric(ss[2])*60+as.numeric(ss[3])
}
在这种情况下效果非常好:
myFunc("61:35:00")
myFunc("61:36:00")
但在我需要的用例中,只有1次有效(在csv文件的第一个字符串上):
setClass('myTime')
setAs("character","myTime", myFunc(from) )
art=read.csv2("file.csv", colClasses=c('myTime') )
您的函数不是矢量化的,只是基于向量
ss
中的前3个值返回一个值
您可以将您的myFunc()
应用于多个值:
x <- c("61:35:00", "61:36:00")
sapply(x,myFunc)
#61:35:00 61:36:00
# 89940 90000
…或使用Vectorize
,在这种情况下可能不太谨慎:
Vectorize(myFunc)(x)
#61:35:00 61:36:00
# 89940 90000
Vectorize(myFunc)(x)
#61:35:00 61:36:00
# 89940 90000