私のデータセットはこのように見え、私はデータのリストを持っています。私が何をしたいかlapplyを使用してリスト内の複数のデータフレームに関数を適用すると、エラーメッセージが表示されます。
Plot_ID Canopy_infection_rate DAI
1 YO01 5 7
2 YO01 8 14
3 YO01 10 21
は、データフレームのリストに「audpc_Canopyinfactionrate」と呼ばれる機能を適用することです。私は私のデータが列をシフトしていない私のリストをチェックしました
Error in FUN(X[[i]], ...) : argument "DAI" is missing, with no default
:私はlapply実行すると、以下のよう
はしかし、私はエラーを取得します。
誰に間違っているのか分かりますか?おかげ
は、ここに私のコードの一部です:
#Read files in to list
for(i in 1:length(files)) {
lst[[i]] <- read.delim(files[i], header = TRUE, sep=" ")
}
#Apply a function to the list
densities <- list()
densities<- lapply(lst, audpc_Canopyinfactionrate)
#canopy infection rate
audpc_Canopyinfactionrate <- function(Canopy_infection_rate,DAI){
n <- length(DAI)
meanvec <- matrix(-1,(n-1))
intvec <- matrix(-1,(n-1))
for(i in 1:(n-1)){
meanvec[i] <- mean(c(Canopy_infection_rate[i],
Canopy_infection_rate[i+1]))
intvec[i] <- DAI[i+1] - DAI[i]
}
infprod <- meanvec * intvec
sum(infprod)
}
あなたは 'audpc_Canopyinfactionrate()'関数の 'DAI ='引数の値を指定しませんでした。したがって、エラーメッセージ:*引数 "DAI"が欠落しています。デフォルトはありません。実際には、関数に引数を渡したようには見えません。 – thelatemail
ありがとうございます。これは実際には農業の機能です。私はこのような単一のデータフレームで実行する場合:audpc_Canopyinfactionrate(X17YO1001 $ 'Canopy_infection_rate'、X17YO1001 $' DAI')。それはうまく動作します。 – Helen
関数のソースはここで違いはありません私は思っていません。基本的に 'f < - function(x、y)x + y;を実行しました。 lapply(1:3、f) ' - エラーを避けるために必要なすべての引数を関数に渡す必要があります - ' f < - function(x、y)x + y; lapply(1:3、f、y = 2:4)」と表示されます。 – thelatemail