Noruas :
나는 변경하기 위해 노력하고있어 , 에 (쉼표) . R.를 사용하여 폴더에 특정에 내 텍스트 파일의 모두 (점) 그러나 나는하지 수동으로 파일 경로의 각 시간을 넣어 싶어. 대신에 나는 폴더에있는 .TXT 파일을 모두 돌이를 원하고, 같은 장소에서 같은 이름으로 다시 그냥 저장 한 다음 그들을 변화 등을 확인합니다.
지금 현재 내가이 변하기 쉬워 변수를 사용하여 경로를 설정하기 위해 시도 writeLines 기능에 문제가이 오류 메시지의 결과로, 작동하지 않는 것 :
"writeLines (TX2, 경로 때 listFiles = [I])에 오류가 미 인자 (경로 때 listFiles = [I])"
이것은 내 curent 코드 초안 :
folder_path <- "C:/Users/pathToMyFiles"
setwd(folder_path)
listFiles= list.files(path = "C:/Users/pathToMyFiles", pattern= "*.TXT",
full.names = TRUE)
#print(listFiles)
#print(listFiles[1])
i=1
for (i in length(listFiles)) {
tx <- readLines(listFiles[i])
tx2 <- gsub(pattern = ",", replace = ".", x = tx)
writeLines(tx2, path = listFiles[i])
i <- i + 1
}
모든 코드의 단계의 생산 출력에서 볼 때 "writeLines"기능을 제외하고 작동하는 것 같다.
누군가가이를 해결 알고 있다면 감사하겠습니다.
모두 제일 좋다!
엔
Oszkar :
작업에 대한 솔루션을 청소 :
setwd('C:/Users/pathToMyFiles')
text_file_list <- list.files(pattern='*.txt')
for (text_file in text_file_list) {
text_from_file <- readLines((text_file))
modified_text <- gsub(',', '.', text_from_file)
writeLines(modified_text, text_file)
}
그리고 (이 시간 디렉토리를 변경하지 않고) 파이프를 사용하여 루프 무료 솔루션 :
library(magrittr)
{text_file_list <- list.files(path='C:/Users/pathToMyFiles',
pattern='*.txt',
full.names=TRUE)} %>%
lapply(readLines) %>%
lapply(function(x) gsub(',', '.', x)) %>%
{mapply(function(x, y) writeLines(x, y), ., text_file_list)}
코드의 일부 의견 :
- 후에
setwd()
당신은 필요하지 않습니다path
및full.names
에 인수를list.files()
. 방법을 구입, 그것은 좋은 방법은 (r2evans @로 지적) 그 인수를 사용해야 물론보다, 코드에서 디렉토리를 변경하지 않는 것입니다. - 당신은 필요하지 않습니다
i = 1
및i <- i + 1
에 대한for
루프 - 오류가 있었다 어디에 : 당신은 사용해야합니다
i in 1:length(fileList)
. 당신이 사용한 방법은 목록에서 마지막 파일을 변경했습니다. - 다른 모든 변경은 화장품입니다