2016-08-28 3 views
0

폴더에서 파일을 읽고 계산 한 다음 길이가있는 루프를 사용하여 각 파일을 검토하고 cat 함수를 사용하고 첫 번째 파일에 put 경우 output.txt 의 출력은하기와 같은 :.txt 파일에서 값을 읽고 출력 파일에 쓰기

  • 파일 1 : 고양이 출력
  • 파일 2 :

    : 고양이 출력

내 코드의 모습

entry = list.files(path = "//Users//michael/Desktop//test_folder", full.names = TRUE, recursive = TRUE) 
output = list.files(path = "//Users//michael/Desktop//list.txt", full.names = TRUE, recursive = TRUE) 
len = length(entry) 
for(i in 1){ 
cat(entry,file="//Users//michael/Desktop//list.txt", sep="\t", append=TRUE) 
cat("\n",file="//Users//michael/Desktop//list.txt", append=TRUE) 
} 

나는 또한 for(i in 1:len)으로 시도했지만 'x'가 반복 될 때마다 x3이 길어질 수 있습니다.

  • 파일 2.txt 비슷한 값
  • 을 가지고 값 (존, 마이클, 파비안) 새로운 라인의 각 하나

    • 파일 1.TXT (\ n)도 :

      내 test_folder처럼 보이는

    은 요약하면 :
    내 test_folder를로드하려고, (내 경우 2) 파일의 수를 계산, 루프에서 각 파일을 통과하고 cat 그들 그래서 내부의 내부에 다음의 값을 인쇄 무엇을 볼 수 있습니다 내 list.txt (출력)과 같은 형식 :

    • 파일 1 : 고양이 출력
    • 파일 2 : 고양이 출력

    어디 내 실수와 방법 것 같은 출력/변경 코드 모양이 일을하기 위해?

    +0

    귀하의 목적이 무엇인지 이해하려고 시도하십시오 : 귀하가 생산하려고하는 최종 제품은 무엇입니까? –

    +0

    @MichaelDavidson 학습 곡선입니다.난 그냥 폴더에 파일을 통과하고 싶습니다 (.txt 파일 만있을 것입니다)> cat 그들을 output.txt 파일에 인쇄하십시오. 그냥 학습 곡선. 나중에 나는 뭔가 다른 일을 할 수있는 함수로 일부 코드를 바꿀 것이다. 어떻게 할 수 있는가? 감사! – Michael

    답변

    1

    알다시피, 올바르게 이해하면 단일 디렉터리에서 여러 .txt 파일을 연 다음 해당 내용을 연결하려고합니다. list.files (이미있는 것처럼)을 사용하고 lapplyreadLines을 사용하여 파일을 열 것을 권합니다.

    .txt 파일의 위치를 ​​가져옵니다. 이 디렉토리 (파일 위치)되는리스트의 각 요소 목록을 생성합니다 lapply

    dirs <- list.file(path="path/to/input/directory", full.path=TRUE) 
    

    사용이 (당신의 for 루프 같은)리스트의 요소를 반복하고 함수 readLines로를 엽니 다. 이 dirs 같은 수의 요소와 목록을 생성하지만,이 시간은 텍스트 파일의 내용이 포함되어

    마지막으로
    myfiles <- lapply(dirs, readLines) 
    

    ,리스트의 이러한 요소를 (각각 하나 개의 텍스트 파일의 내용을 포함하는) 결합을 하나의 텍스트 파일로 저장할 수있는 하나의 객체로 만듭니다.

    dat <- do.call("rbind", myfiles) # note rbind might need to be replaced with "c" depending on the contents of the .txt files 
    

    내가 누락되었거나 오해 한 경우 죄송합니다. 의견을 말하면 그에 따라 적응할 것입니다.

    +0

    실제로 작동했습니다! 나는 너에게 두 번째 질문을한다. 이제 일부 폴더에서 이미지를로드하고 ** mxnet ** 라이브러리를 사용하여 이미지의 결과를 얻으려고합니다. 예를 들어, 폴더에서 이미지를로드하고 토끼가있는 경우, 출력은 "90 % 토끼"와 같아야합니다. 나는 하나의 이미지에 대해 작동하는 버전을 가지고 있지만 지금은 하나 이상의 이미지를 변경하려고합니다. 그래서 모든 것입니다. 힌트있어? :) 솔루션을 주셔서 감사합니다 – Michael

    +1

    다행입니다. 이 자습서 중 일부를 확인해 보겠습니다. http://mxnet.io/packages/r/index.html 패키지를 사용하지 않았습니다. 시도를 한 후에는 새로운 질문을 게시 할 수 있습니다. –

    관련 문제