R : 여러 제목이있는 목록-제목별로 분할하는 방법 (제목 당 다른 줄)

매트

다음과 같은 큰 파일이 있습니다.

Heading1
1 ABC
2 DEF
Heading2
1 GHI
2 JKL
3 MNO
Heading3
1 PQR
2 STU

제목은 항상 동일한 패턴을 갖지만 각 제목 아래의 항목은 다릅니다 (다른 항목 수, 공통 패턴 없음, 다른 문자 / 단어 수).

하나의 목록을 여러 목록, 즉 각 제목에 대한 새 목록으로 나누고 싶습니다. 누군가가 이것을 해결하는 방법을 올바른 방향으로 안내해 줄 수 있다면 좋을 것입니다.

건배!

편집 : 각 새 목록을 파일 이름 = 제목이있는 별도의 파일로 저장하는 방법을 포함하는 것을 잊었습니까?

@Nate 덕분에 최종 솔루션


## input

test <- list("Heading1", "1 ABC", "2 DEF", "Heading2", "1 GHI", "2 JKL", "3 MNO", "Heading3", "1 PQR", "2 STU")

## split list into list of lists

header_positions <- grepl("^Heading", test)

grouping_index <- cumsum(header_positions)

li <- split(test[!header_positions], grouping_index[!header_positions])

setNames(li, test[header_positions]) # Yes to fancy names ;)

## save each list

for(n in names(li)) {
  writeLines(unlist(li[[n]]), paste0("heading ",n))
} 
네이트

이것이 내가 할 일입니다.

header_positions <- grepl("^Heading", test)
header_positions

grouping_index <- cumsum(header_positions)
grouping_index

li <- split(test[!header_positions], grouping_index[!header_positions])
li

setNames(li, test[header_positions]) # if you want to have fancy names :)

cumsum(grepl(...))패턴은 이러한 종류의 목록 분할 작업에 매우 유용 하다고 생각합니다 .

을 통해 작성 writeLines()하려면 다음을 사용하여 목록 요소를 character벡터 로 변환해야합니다 unlist().

for(n in names(li)) {
  writeLines(unlist(li[[n]]), paste0(n, ".txt"))
} 

이것은 목록의 이름을 반복하는 또 다른 유용한 패턴이므로 이름에 직접 (파일 이름의 경우) 액세스하고이를 사용하여 목록 (파일 내용의 경우)을 색인화 할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

변수 목록을 다른 목록에 할당하는 방법

분류에서Dev

F #을 사용하여 다른 목록을 기반으로 목록을 줄이는 가장 빠른 방법

분류에서Dev

파이썬에서 다른 목록에 목록을 할당하는 방법

분류에서Dev

다른 목록 사이에있는 다른 요소 목록을 제어하는 방법

분류에서Dev

R의 다른 목록에없는 목록에서 개체를 제거하는 방법

분류에서Dev

목록에없는 항목을 푸시하고 싶습니다. 항목이 이미 목록에있는 경우 해당 항목을 제거하십시오.

분류에서Dev

동일한 항목이 다른 목록에있는 경우 한 Excel 목록에서 항목을 제거하는 방법

분류에서Dev

R : tidyverse를 사용하여 길이가 다른 벡터 목록을 데이터 프레임으로 강제 변환하는 방법은 무엇입니까?

분류에서Dev

증분 ID 및 값으로 목록 "li"항목을 여러 번 복제하는 방법

분류에서Dev

다른 목록의 항목을 비교하여 목록에서 항목 제거

분류에서Dev

다른 목록의 필드에 해당하는 주문 목록-밑줄 Javascript

분류에서Dev

목록에서 여러 col 값을 제거하는 방법

분류에서Dev

목록에서 여러 항목을 동시에 제거하는 방법

분류에서Dev

여러 줄 목록에서 쉼표로 구분 된 한 줄의 여러 단어를 변환하는 방법

분류에서Dev

r : 여러 항목이있는 행을 ID별로 하나의 열로 분할

분류에서Dev

r : 여러 항목이있는 행을 ID별로 하나의 열로 분할

분류에서Dev

Makefile : 다른 목록에서 잘린 여러 파일 이름과 일치하는 파일 목록 제거

분류에서Dev

목록 목록을 별도의 열로 분할하는 방법

분류에서Dev

여러 활동에 대한 사용자 정의 창 제목 표시 줄 및 해당 아이콘을 변경하는 방법

분류에서Dev

Python 목록 할당 문제

분류에서Dev

JavaScript를 사용하여 목록 항목 제목을 검색하는 방법

분류에서Dev

Excel : 기존 목록의 ID 번호를 중복이 포함 된 다른 목록에 할당하는 방법

분류에서Dev

여러 드롭 다운을 복제 할 때 jQuery에서 여러 드롭 다운 목록 값을 얻는 방법

분류에서Dev

정렬 된 글꼴이있는 여러 줄 목록 항목

분류에서Dev

여러 제목이있는 Mapbox 마커

분류에서Dev

Python : 길이가 다른 여러 목록의 하위 제품을 튜플 목록으로 병합

분류에서Dev

선택한 여러 목록 상자 항목을 다른 목록 상자로 가져 오는 방법

분류에서Dev

WKInterfaceButton 여러 줄 제목

분류에서Dev

visNetwork의 여러 줄 제목

Related 관련 기사

  1. 1

    변수 목록을 다른 목록에 할당하는 방법

  2. 2

    F #을 사용하여 다른 목록을 기반으로 목록을 줄이는 가장 빠른 방법

  3. 3

    파이썬에서 다른 목록에 목록을 할당하는 방법

  4. 4

    다른 목록 사이에있는 다른 요소 목록을 제어하는 방법

  5. 5

    R의 다른 목록에없는 목록에서 개체를 제거하는 방법

  6. 6

    목록에없는 항목을 푸시하고 싶습니다. 항목이 이미 목록에있는 경우 해당 항목을 제거하십시오.

  7. 7

    동일한 항목이 다른 목록에있는 경우 한 Excel 목록에서 항목을 제거하는 방법

  8. 8

    R : tidyverse를 사용하여 길이가 다른 벡터 목록을 데이터 프레임으로 강제 변환하는 방법은 무엇입니까?

  9. 9

    증분 ID 및 값으로 목록 "li"항목을 여러 번 복제하는 방법

  10. 10

    다른 목록의 항목을 비교하여 목록에서 항목 제거

  11. 11

    다른 목록의 필드에 해당하는 주문 목록-밑줄 Javascript

  12. 12

    목록에서 여러 col 값을 제거하는 방법

  13. 13

    목록에서 여러 항목을 동시에 제거하는 방법

  14. 14

    여러 줄 목록에서 쉼표로 구분 된 한 줄의 여러 단어를 변환하는 방법

  15. 15

    r : 여러 항목이있는 행을 ID별로 하나의 열로 분할

  16. 16

    r : 여러 항목이있는 행을 ID별로 하나의 열로 분할

  17. 17

    Makefile : 다른 목록에서 잘린 여러 파일 이름과 일치하는 파일 목록 제거

  18. 18

    목록 목록을 별도의 열로 분할하는 방법

  19. 19

    여러 활동에 대한 사용자 정의 창 제목 표시 줄 및 해당 아이콘을 변경하는 방법

  20. 20

    Python 목록 할당 문제

  21. 21

    JavaScript를 사용하여 목록 항목 제목을 검색하는 방법

  22. 22

    Excel : 기존 목록의 ID 번호를 중복이 포함 된 다른 목록에 할당하는 방법

  23. 23

    여러 드롭 다운을 복제 할 때 jQuery에서 여러 드롭 다운 목록 값을 얻는 방법

  24. 24

    정렬 된 글꼴이있는 여러 줄 목록 항목

  25. 25

    여러 제목이있는 Mapbox 마커

  26. 26

    Python : 길이가 다른 여러 목록의 하위 제품을 튜플 목록으로 병합

  27. 27

    선택한 여러 목록 상자 항목을 다른 목록 상자로 가져 오는 방법

  28. 28

    WKInterfaceButton 여러 줄 제목

  29. 29

    visNetwork의 여러 줄 제목

뜨겁다태그

보관