내가 가진 데이터는 다음과 같습니다.
data <- c("24-March-2017 text1 874874455221112 Text text text10",
"25-March-2017 text2 54654656TEXT Text text 11",
"24-March-2017 text3 874874455221112 Text text text 12",
"25-March-2017 text4 54654656TEXT Text text 13",
"26-March-2017 text3 54654TEXT Text text text 14",
"27-March-2017 text5 6546TEXT Text text text 15",
"28-March-2017 text6 546476876586TExt Text text text 16",
"29-March-2017 text7 23453453TEXT Text text 17")
이 데이터를 각 열 사이의 공백을 기반으로 구조화 된 형식으로 변환하고 싶습니다. 처음 세 행은 내가 원하는 데이터 모양과 똑같습니다. 최종 결과는 다음과 같아야합니다.
원래:
이것은 주어진 데이터를 기반으로하며 다음을 가정합니다.
일치하는 부분 문자열을 꺼내서 rbind
행렬로 만들고 전역 일치 항목을 제거하고 a로 변환 data.frame
한 다음 통과 sprintf
하여 고정 너비 출력을 얻습니다.
data %>%
regmatches(regexec("^(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(.*?)$", .)) %>%
do.call("rbind", .) %>%
.[, -1] %>%
as.data.frame(stringsAsFactors = FALSE) %>%
c(list("%-20s%-30s%-30s%s"), .) %>%
do.call("sprintf", .)
# [1] "24-March-2017 text1 874874455221112 Text text text10"
# [2] "25-March-2017 text2 54654656TEXT Text text 11"
# [3] "24-March-2017 text3 874874455221112 Text text text 12"
# [4] "25-March-2017 text4 54654656TEXT Text text 13"
# [5] "26-March-2017 text3 54654TEXT Text text text 14"
# [6] "27-March-2017 text5 6546TEXT Text text text 15"
# [7] "28-March-2017 text6 546476876586TExt Text text text 16"
# [8] "29-March-2017 text7 23453453TEXT Text text 17"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다