2017-12-08 20 views
-1

まったく同じ構造を持つ複数のデータフレームがあります。私はすべてのこれらのデータフレームをループし、変数 "ハット" = Dの行を削除したいと思います。以下は、私は単一のインスタンスを持っていますが、複数のデータフレームのためにこれを行うループを記述したいと思います。ループを含む複数のデータフレームから行を削除する

final_prices_designations_20161101_20161114.csv <- subset.data.frame(final_prices_designations_20161101_20161114.csv, 
    final_prices_designations_20161101_20161114.csv$Hat == "D") 
+2

あなたは上と同様の操作を実行したい関連data.framesの束を持っている場合、チャンスは、彼らがリストではなく、別々の変数の束にされている必要があります。構造を改善する方法については、[data.framesのリストを作成する方法](https://stackoverflow.com/questions/17499013/how-do-i-make-a-list-of-data-frames)を参照してください。あなたのデータはこのような操作を容易にします。 – MrFlick

答えて

0

これを管理する最も簡単な方法は、どこHat == 'D'削除するには、データとサブセット項目を読み取るためにapply()機能を使用することです。

# first, read list of files from disk 
theCSVFiles <- list.files(...) 
# read each file and subset to eliminate Hat == D 
fileList <- lapply(theCSVFiles,function(x) read.csv(x)[x$Hat!='D',]) 
# if necessary to combine to single file 
aResult <- do.call(rbind,fileList) 
0
#Install the library 'zonator' for function 'file_path_sans_ext' 
install.packages("zonator") 
library(zonator) 
#Change filesPath with location for your data 
filesPath <- "D:/R/Import files/" 
#file_path_sans_ext : to read files without extension 
files <- file_path_sans_ext(list.files(filesPath)) 
#loop : I chose a loop to create a physicals tables 
for (i in 1:length(files)){ 
    tempTable=read.csv(paste0(filesPath,files[1],".csv"),sep=';') 
    assign(files[i] ,tempTable[tempTable$Hat!='D',]) 
} 
remove(tempTable)# to delete temporary table 
+0

'L < - lapply(paste0(filesPath、files、" csv ")、...)' – jogo

+0

Ok。データフレームのリストを作る方が良いです。私はループを変更しました: L < - lapply(files、function(x){ tempTable < - read.csv(pastePathPath、x、 ".csv")、sep = ';') tempTable [tempTable $ Hat!= 'D'、] }) – YouKH

関連する問題