私はベクトル操作を含むカスタム関数を作成しようとしています。この機能は、手動でパスとデータ名を入力した後にうまく機能します。各文書は、1つの列に数字だけを含む.txtファイルです。 しかし、フォルダには多数のファイルがあります。私の質問は、どのように私の関数をすべての.txtファイルでループすることができますか?フォルダを介して関数をループする
このコードを使用しようとしましたが、何もしません。ここで
filenames <- list.files(path=("/folder/"), pattern=".txt")
ldf <- lapply(filenames, read.table)
lapply(ldf, sumfun)
コード
dataframe <- read.table('folder/dataframe.txt')
sumfun <- function(a){
x <- dataframe[1:length(dataframe)-1]
y <- dataframe[-1]
dx <- y-x
SUM1 <- sum(dx[which(dx>1)]))^2
SUM2 <- sum(dx[which(dx<1)]))^2
SUMtot <- SUM1 + SUM2
return(SUMtot)
}
sumfun(dataframe)
のsimplyfiedバージョンでは、私はそれを理解し、問題はxとyのベクトル操作であるかもしれない?ですか
'適用'機能を試しましたか?私はまた、印刷文を差し込み、何が起こっているのかを確認することをお勧めします。 –
関数内の 'dataframe'を' a'で置き換える必要があります。 'x < - a [1:length(a)-1]'です。今では、関数内で入力変数を使用しません。 – LAP