나는 압축을 풀고있는 zip 파일을 가지고 있습니다. for 루프를 사용하여 작업 디렉토리의 디렉토리를 탐색 한 다음 작업 디렉토리를 방금 풀었을 새 디렉토리로 변경합니다 . 그러나, 그것을 좋아하지 않는 것 같습니다.R for using 루프를 사용하는 작업 디렉토리
아래 두 코드는 내가 사용했던 두 가지 코드입니다. 그 중 하나는 오류로 끝나고 두 번째 코드는 내가 원하는 것을 수행하지 않습니다. 파이썬 로직을 섞어 놓은 것 같아요? 다음과 같이
for (i in list.files("./")){
if (endsWith(tolower(i),"zip")){
unzip(i)
cat("Unzipped",i,"\n")
}
}
for (i in list.dirs(getwd())){
cat("This is i",i,"\n")
Root <- setwd(i)
cat("This is ROOT",Root,"\n")
}
print(Root)
나는 위의 코드를 실행 얻을 결과는 다음과 같습니다 당신이 볼 수 있듯이
This is i F:/Testing with R
This is ROOT F:/Testing with R
This is i F:/Testing with R/ABC_Data
This is ROOT F:/Testing with R
, 내가 폴더를 루프를 좋아하고 ABC_Data 작업 디렉토리 만들 것이라고 그래서 그런 다음 파일을 반복 할 수 있지만 좋아하지는 않습니다. 당신이 할 수있는, 그래서
> for (i in list.files("./")){
+ if (endsWith(tolower(i),"zip")){
+ unzip(i)
+ cat("Unzipped",i,"\n")
+ }
+ }
Unzipped GVA_BillData.zip
>
> for (i in list.dirs(getwd())){
+ cat("This is i",i,"\n")
+ Root <- paste0(path.expand(i),"/")
+ cat("This is ROOT",Root,"\n")
+
+ }
This is i F:/Testing with R
This is ROOT F:/Testing with R/
This is i F:/Testing with R/ABC_Data
This is ROOT F:/Testing with R/ABC_Data/
>
> print(Root)
[1] "F:/Testing with R/ABC_Data/"
>
> File_count <- 0
> for (a in list.files(Root)){
+ print(a)
+ if (endsWith(tolower(a),"csv")){
+ if (length(grep("service file",tolower(a)) > 0)){
+ Import <- read.csv(a, header = TRUE)
+ for (i in 1:nrow(Import)){
+ Import_Date <- Import[1,4]
+ if (File_count == 0){
+ write.table(c(Import[i,],Import_Date,a),"Output.csv",append = TRUE,sep = ",",row.names = FALSE,col.names = TRUE)
+ File_count <- File_count + 1
+ } else (write.table(c(Import[i,],Import_Date,a),"Output.csv",append = TRUE,sep = ",",row.names = FALSE,col.names = FALSE))
+ }
+ }
+ }
+ }
[1] "1234_126311.csv"
[1] "Service File.csv"
Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") :
cannot open file 'Service File.csv': No such file or directory
> print("Finished")
[1] "Finished"
: 다음 특정 시점까지 일을 아래에 paste0()를 사용하여 개정 된 유래에 일부 페이지를 거쳐 시도했지만 두 번째 코드는 오류를 준
두 번째 코드에서 볼 수 있듯이 폴더로 점프하지만 오류 메시지가 throw됩니다. 나는 단순히path.expand(i)
을 사용해 보았지만 그게 효과가 없었다.
감사합니다. 내가 처음부터 그렇게하지 못하게 한 이유는 무엇입니까? 함수를 호출하여 값을 할당했기 때문에 그랬습니까 ?? – AmarKahlon