저는 R에 대해 비교적 새로운 편입니다. 따라서 경험이 많은 사용자는 벡터 공간에서 명확하게 생각하지 않습니다. 그래서 같은 형식있어 데이터 프레임이 있습니다 R의 TSV에서 키 - 값 쌍을 파싱
metric timestamp value tag1 tag2 tag3 tag4 tag5 tag6 tag7 tag8 tag9 tag10
1 dummy.random.unif 1367848802 0.9936670064926147 host=localhost blah=foo NA NA NA NA NA NA NA NA
2 dummy.random.unif 1367848822 0.19621700048446655 host=localhost blah=bar NA NA NA NA NA NA NA NA
3 dummy.linear 1367848842 97.6 shmoo=whatever NA NA NA NA NA NA NA NA NA
4 dummy.random.unif 1367848862 0.3171229958534241 host=localhost blah=foo NA NA NA NA NA NA NA NA
5 dummy.linear 1367848882 97.7 shmoo=whatever NA NA NA NA NA NA NA NA NA
6 dummy.random.unif 1367848902 0.2197140008211136 host=localhost blah=foo NA NA NA NA NA NA NA NA
당신이 볼 수 있듯이
, 키 - 값 쌍을 포함tag1:tag10
열. 항상 같은 키가 아니며 항상 같은 수의 키가있는 것은 아닙니다. 나는 소비를 위해 더 편리 이와 비슷한 더 많은 것을,이 데이터 프레임을 변환 할 :
metric timestamp value tag.host tag.blah tag.shmoo
1 dummy.random.unif 1367848802 0.9936670064926147 localhost foo NA
2 dummy.random.unif 1367848822 0.19621700048446655 localhost bar NA
3 dummy.linear 1367848842 97.6 NA NA whatever
4 dummy.random.unif 1367848862 0.3171229958534241 localhost foo NA
5 dummy.linear 1367848882 97.7 NA NA whatever
6 dummy.random.unif 1367848902 0.2197140008211136 localhost foo whatever
지금 내가 절차 적으로이 작업을 수행 할 수 있습니다 알고 있지만, 거추장스러운 것, 그리고 올바른 들었습니다 R을 사용하는 방법은 전체 벡터에 대한 연산을 생각하는 것입니다. do.call
, daply
, strsplit
등의 올바른 순열을 알아 내려고 몇 시간을 보냈지 만 어디에도 없습니다.
이 문제를 해결하기위한 깨끗한 R-ish 방법은 무엇입니까?
좋은 재현성 예를 만드는 방법에 이것을 읽고 질문을 업데이트하십시오 : http://stackoverflow.com/questions/5963269/how-to-make-a- 위대한 -r-reproducible-example – Dason
시도 sub 또는 str_split –