我正在分析某些物質隨時間的退化。腳本的目標是在應用程序之後的某個時間(「Dag」變量)獲取包含觀察值變化的列表。使用for-loop和lapply分配循環輸出到列表
下面的腳本輸出是一個包含NULL值的列表。我認爲問題在於我將變量aux1分配給列表項,但當我通過命令行執行時,該行可以工作。
可能有更快的計算方法;即使在2個月後,我仍然感到不知所措。R
mydata1<-as.data.frame(matrix(rnorm(600),ncol=6))
names(mydata1)=c("a","b","c","d","e","f")
substance1<-names(mydata1)
times1<-as.data.frame(rep(seq_len(10),10),ncol=1)
names(times1)<-"Dag"
times2<-unique(times1)
mydata1<-cbind(times1,mydata1)
vartijd<-function(times,mydata,substance){
varlist<<-vector("list",length(substance))
for (j in 1:length(substance))
aux<-sapply(times,function(i)var(mydata[mydata$Dag==i,substance[j]],na.rm=TRUE))
aux1<-cbind(times,aux)
varlist[[j]]<-aux1
}
vartijd(times2,mydata1,substance1)
1)爲什麼要使用'<< - '? 2)爲什麼你的代碼中沒有空格? 3)'names(times1 < - 「Dag」)'應該是'names(times1)< - 「Dag」'4),否'<< - '5)'aux1 < - cbind(times,aux)'是使用單個命名值(aux)列綁定數據幀(times1);當使用cbind時,對象必須具有相同的行數。解決這些問題,並且至少應該運行 – rawr
代碼問題的道歉。發佈前我沒有運行過仿真代碼。 – Pinemangoes
你爲什麼不跑它?你只是認爲它不會工作? – rawr