With basic fixes to your code, this works fine.
vartijd<-function(times,mydata,substance){
varlist<-vector("list",length(substance)) # local `<-` assignment
for (j in 1:length(substance)){ # opening bracket
aux<-sapply(times,function(i)var(mydata[mydata$Dag==i,substance[j]],na.rm=TRUE))
aux1<-cbind(times,aux)
varlist[[j]]<-aux1
} # closing bracket
return(varlist) # explicit return
}
Result:
> out <- vartijd(times2,mydata1,substance1)
> str(out)
List of 6
$ :'data.frame': 10 obs. of 2 variables:
..$ Dag: int [1:10] 1 2 3 4 5 6 7 8 9 10
..$ aux: num [1:10] 0.997 0.997 0.997 0.997 0.997 ...
$ :'data.frame': 10 obs. of 2 variables:
..$ Dag: int [1:10] 1 2 3 4 5 6 7 8 9 10
..$ aux: num [1:10] 0.891 0.891 0.891 0.891 0.891 ...
$ :'data.frame': 10 obs. of 2 variables:
..$ Dag: int [1:10] 1 2 3 4 5 6 7 8 9 10
..$ aux: num [1:10] 1.08 1.08 1.08 1.08 1.08 ...
$ :'data.frame': 10 obs. of 2 variables:
..$ Dag: int [1:10] 1 2 3 4 5 6 7 8 9 10
..$ aux: num [1:10] 0.927 0.927 0.927 0.927 0.927 ...
$ :'data.frame': 10 obs. of 2 variables:
..$ Dag: int [1:10] 1 2 3 4 5 6 7 8 9 10
..$ aux: num [1:10] 0.86 0.86 0.86 0.86 0.86 ...
$ :'data.frame': 10 obs. of 2 variables:
..$ Dag: int [1:10] 1 2 3 4 5 6 7 8 9 10
..$ aux: num [1:10] 0.874 0.874 0.874 0.874 0.874 ...