R 공백으로 구분 된 문자열 데이터를 열로 분할

오마르 레이예스

열로 추출하고 구성해야하는 공백으로 구분 된 다른 숫자 값을 포함하는 하나의 열이있는 큰 데이터 프레임이 있습니다.

<Call Begin=6.0982886400000051 End=6.1078732800000051 MaxFreq=40893.5546875 MinFreq=35400.390625 PeakFreq=39672.8515625 PeakFreqs=39672.8515625 39672.8515625 39672.8515625 39672.8515625 39672.8515625 39672.8515625 39672.8515625 39672.8515625 39672.8515625 39672.8515625 39672.8515625 39672.8515625 39062.5 39062.5 39062.5 39062.5 39062.5 39062.5 39062.5 39062.5 39062.5 39062.5 39062.5 39062.5 39062.5 39062.5 39062.5 39062.5 39062.5 39062.5 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 38452.1484375 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37841.796875 37231.4453125 37231.4453125 37231.4453125 37231.4453125 37231.4453125 37231.4453125 37231.4453125 37231.4453125 37231.4453125 37231.4453125 37231.4453125 37231.4453125 37231.4453125 37231.4453125 37231.4453125 37231.4453125 37231.4453125 37231.4453125 37231.4453125 37231.4453125 36621.09375 36621.09375 36621.09375 36621.09375 Intensity=-14.902734633213136 Periodicity=0.853448275862069 Shape=- CallType=cf-n Species=Pipistrellus kuhlii (77%), Pipistrellus nathusii (77%) Custom=false /> 

이것은 내 데이터에 대한 추가 정보입니다.

'data.frame':39 obs. of  1 variable $ x1: Factor w/ 120 levels "
<double>25.318181818181806</double>",..: 66 67 68 69 70 71 72 73 74 75...

다음과 같은 것이 필요합니다.

     call_begin            call_end         maxfrec         minfrec
1 0.59170816000000048 0.60006400000000049 531.005.859.375 433.349.609.375
2  0.7636582400000006 0.77135872000000061 531.005.859.375  42.724.609.375
         peakfrec
1 482.177.734.375
2 469.970.703.125

나는 이것을 달성하기위한 몇 가지 아이디어가 있습니다. 먼저 strsplit을 사용하여 열을 분리하고 나중에 substr 함수를 사용하여 숫자를 추출하고 마지막으로 rbind하여 테이블을 만들고 관련 주제가있는 스레드를 찾았지만 복제 할 수 있습니다. 내 데이터에서.

도움을 주시면 감사하겠습니다. 확실하지 않은 경우 알려주세요.

로맨스

설명 한 것과 유사한 솔루션입니다. 이 솔루션은 좀 더 일반적이며 열 수에 의존하지 않습니다.

text <- '<Call Begin=0.59170816000000048 End=0.60006400000000049 MaxFreq=53100.5859375 MinFreq=43334.9609375 PeakFreq=48217.7734375
<Call Begin=0.7636582400000006 End=0.77135872000000061 MaxFreq=53100.5859375 MinFreq=42724.609375 PeakFreq=46997.0703125'

process_line <- function(line) {
    sp <- strsplit(line, ' ')[[1]][-1]
    cn <- sapply(sp, function(x) strsplit(x, "=")[[1]][1])
    data <- sapply(sp, function(x) as.numeric(strsplit(x, "=")[[1]][2]))
    names(data) <- cn
    data
}

t(sapply(strsplit(text, "\n")[[1]], process_line, USE.NAMES = FALSE))
         Begin       End  MaxFreq  MinFreq PeakFreq
[1,] 0.5917082 0.6000640 53100.59 43334.96 48217.77
[2,] 0.7636582 0.7713587 53100.59 42724.61 46997.07

그것은 시험 그렇지 않으면, 선으로 분리되지 않는다는 것을 전제로 strsplit(text, "\n")[[1]]text. 더 작은 청크를 다음과 같이 분할하여 데이터를 얻을 수 있으므로 정규식을 사용할 필요가 없습니다.=

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

R은 다른 수의 공백으로 구분 된 문자 열 분할

분류에서Dev

공백으로 구분 된 문자열 길이

분류에서Dev

서로 다른 열에서 데이터 프레임과 공백으로 구분 된 문자열 구분

분류에서Dev

길이가 정의 된 공백으로 문자열 분할

분류에서Dev

구분 된 문자열을 R 데이터 프레임의 개별 열로 분할

분류에서Dev

Python-공백과 쉼표로 구분 된 이름 문자열 분할

분류에서Dev

C ++에서 공백으로 구분 된 문자열을 벡터로 읽기

분류에서Dev

공백으로 구분 된 선을 연관 배열로 분할

분류에서Dev

공백으로 구분 된 문자열 열 정렬

분류에서Dev

목록에 공백으로 구분 된 문자열 열 복사

분류에서Dev

중첩 된 json 데이터를 문자열로 구문 분석

분류에서Dev

문자열을 공백으로 구분 된 정수로 변환

분류에서Dev

로 구분 된 문자열 구분; R의 열로

분류에서Dev

공백으로 구분 된 문자열 통과

분류에서Dev

공백으로 구분 된 문자열의 일부 추출

분류에서Dev

공백으로 구분 된 RegEx 일치 문자열

분류에서Dev

공백으로 구분 된 값에서 문자 배열 읽기

분류에서Dev

\ r \ n으로 구분 된 문자열을 문자열 배열로 분할 [C / C ++]

분류에서Dev

여러 문자열이있는 필드에서 영숫자 공백으로 구분 된 문자열 검색 (Lucene)

분류에서Dev

문자열의 구분 된 데이터를 단일 열의 값으로 변환

분류에서Dev

공백으로 구분 된 숫자를 포함하는 문자열을 정수 배열로 변환

분류에서Dev

콜론으로 구분 된 문자열을 배열로 분할

분류에서Dev

여러 공백으로 분할 된 복잡한 문자열

분류에서Dev

cmd 일괄 처리-usebackq in for : 분할 할 문자열이 쉼표로 구분되어 공백으로 구분됨

분류에서Dev

SQL-열이 공백으로 구분 된 문자열을 포함하는 위치를 선택하는 방법

분류에서Dev

R에서 공백으로 문자열 분할

분류에서Dev

공백으로 구분 된 값 분할

분류에서Dev

문자열을 분할하는이 SQL이 공백으로 구분 된 문자열이 아닌 쉼표로 구분 된 문자열로 작동하는 이유는 무엇입니까?

분류에서Dev

공백으로 구분 된 데이터를 numpy 배열로 읽는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    R은 다른 수의 공백으로 구분 된 문자 열 분할

  2. 2

    공백으로 구분 된 문자열 길이

  3. 3

    서로 다른 열에서 데이터 프레임과 공백으로 구분 된 문자열 구분

  4. 4

    길이가 정의 된 공백으로 문자열 분할

  5. 5

    구분 된 문자열을 R 데이터 프레임의 개별 열로 분할

  6. 6

    Python-공백과 쉼표로 구분 된 이름 문자열 분할

  7. 7

    C ++에서 공백으로 구분 된 문자열을 벡터로 읽기

  8. 8

    공백으로 구분 된 선을 연관 배열로 분할

  9. 9

    공백으로 구분 된 문자열 열 정렬

  10. 10

    목록에 공백으로 구분 된 문자열 열 복사

  11. 11

    중첩 된 json 데이터를 문자열로 구문 분석

  12. 12

    문자열을 공백으로 구분 된 정수로 변환

  13. 13

    로 구분 된 문자열 구분; R의 열로

  14. 14

    공백으로 구분 된 문자열 통과

  15. 15

    공백으로 구분 된 문자열의 일부 추출

  16. 16

    공백으로 구분 된 RegEx 일치 문자열

  17. 17

    공백으로 구분 된 값에서 문자 배열 읽기

  18. 18

    \ r \ n으로 구분 된 문자열을 문자열 배열로 분할 [C / C ++]

  19. 19

    여러 문자열이있는 필드에서 영숫자 공백으로 구분 된 문자열 검색 (Lucene)

  20. 20

    문자열의 구분 된 데이터를 단일 열의 값으로 변환

  21. 21

    공백으로 구분 된 숫자를 포함하는 문자열을 정수 배열로 변환

  22. 22

    콜론으로 구분 된 문자열을 배열로 분할

  23. 23

    여러 공백으로 분할 된 복잡한 문자열

  24. 24

    cmd 일괄 처리-usebackq in for : 분할 할 문자열이 쉼표로 구분되어 공백으로 구분됨

  25. 25

    SQL-열이 공백으로 구분 된 문자열을 포함하는 위치를 선택하는 방법

  26. 26

    R에서 공백으로 문자열 분할

  27. 27

    공백으로 구분 된 값 분할

  28. 28

    문자열을 분할하는이 SQL이 공백으로 구분 된 문자열이 아닌 쉼표로 구분 된 문자열로 작동하는 이유는 무엇입니까?

  29. 29

    공백으로 구분 된 데이터를 numpy 배열로 읽는 방법은 무엇입니까?

뜨겁다태그

보관