나는라는 이름으로 오름차순 파일이 들어있는 폴더가 bio1_t2.asc
, bio1_t3.asc
최대를 bio1_t539.asc
. 일부 계산을 위해 폴더에서 이러한 파일을로드하는 패키지를 사용하고 있습니다. 패키지 내의 함수는 폴더에서 직접 파일을로드합니다.
내 문제는 패키지가 bio1_t10.asc bio1_t101.asc...bio1_t2.asc
. 하지만 bio1_t2, bio1_t3,...bio1_t539
진정한 계산 과 같이 숫자 순서로로드하고 싶습니다 .
폴더에서 번호순으로 파일을로드하는 방법이 있습니까? 또는 번호 순서대로로드되도록 파일 이름을 바꾸려면 어떻게해야합니까?
질문이 사용중인 특정 패키지에로드되는 방식과 관련된 것이 아니라 파일 이름 목록을 재정렬하는 것에 관한 것이라고 가정합니다.
한 가지 옵션은 stringr::str_extract
이후의 모든 숫자를 캡처하고 t
해당 값을 기준으로 주문하는 것입니다.
메간 언급으로의 전체 목록을 file_names
사용하여 생성 될 것입니다 list.files
.
library(stringr)
# example file names in an incorrect order
file_names <- c('bio1_t100.asc', 'bio1_t2.asc', 'bio1_t202.asc', 'bio1_t301.asc', 'bio1_t3.asc')
file_names[order(as.numeric(str_extract(file_names, '(?<=t)[0-9]*')))]
#--------
[1] "bio1_t2.asc" "bio1_t3.asc" "bio1_t100.asc" "bio1_t202.asc" "bio1_t301.asc"
편집 : 주석을 기반으로 파일 이름을 바꾸는 것이 가장 쉬운 경로입니다. str_extract
위의 호출을 사용하여 모든 파일의 이름을 바꿀 수 있습니다.
new_names <- paste0((1000 + as.numeric(str_extract(file_names, '(?<=t)[0-9]*'))),'.asc')
# [1] "1100.asc" "1002.asc" "1202.asc" "1301.asc" "1003.asc"
file.rename(file_names, new_names)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다