2017-12-04 24 views
0

PubMed에서 정보를 얻으려면 R에 RISED 패키지를 사용하고 있습니다. 'Mesh'패키지 기능을 사용하면 각 인용문의 MeSH 용어를 얻을 수 있습니다. 그럼에도 그것은 데이터 프레임을 포함하는 목록입니다. 해당 인용 식별자 (PMID) 외에 각 MeSH 용어를 나열하고 싶습니다. 예를 들어, I는 두 값을 포함하는 테이블을 구성 할 수데이터 프레임 내부에서 데이터 프레임 내부의 행 추출하기

table = cbind(ArticleId(MedlineObject),Mesh(MedlineObject)) 

첫 번째 열은 숯 목적이지만 두 번째는 dataframe을 포함하는리스트이다. 1 열 내부의 값은 "29145282"을했고 2dnd 칼럼의 내용은 "심근증은 비후성는", "결합 물리 요법 치료"와 "진단, 차동는"나는 가져올 것 인 경우 :

"29145282","Cardiomyopathy, Hypertrophic" 
"29145282","Combined Modality Therapy" 
"29145282","Diagnosis, Differential" 

어떻게 할 수 나는 이것을 성취합니까?

+2

[재현 가능한 예] (https : //stackoverflow.c)를 제공하십시오. om/questions/5963269/how-to-make-a-great-r-reproducible-example)에 대한 정보를 제공합니다. 최소한'MedlineObject'를 생성 한 코드를 포함하십시오. 또한,'table'은 큰 변수 이름이 아닙니다 (같은 이름을 가진 함수가 있습니다). – neilfws

+0

안녕하세요, 아래의 @TooYoung에서 사용한 예가 좋습니다. "table"은 좋은 변수 이름이 아닙니다. 그것은 실제 예가 아니며 단지 하나의 예일뿐입니다. 감사합니다 – panchtox

+0

다행 그것이 듣고 듣고. 그 대답을 받아들이시겠습니까? – TooYoung

답변

1

. myelomaRISmed 패키지의 medline 데이터입니다.

MedList = mapply(cbind, "ID"=ArticleId(myeloma),Mesh(myeloma),SIMPLIFY = FALSE) 

을 그리고 do.callrbind에 의해 하나의 dataframe에 모든 목록을 병합 :

먼저 mapplycbind하여 목록에있는 모든 dataframes에 ID를 추가

MedFrame = do.call("rbind",MedList) 

당신은 필요 코드에서 'myeloma'를 자신의 MedlineObject로 변경하십시오.

+0

예상대로 정확하게 작동합니다. 감사! – panchtox

0

tidyrtibble 패키지를 확인하십시오. nest()unnest() 함수를 살펴보십시오. 재현 할 수있는 예제가 없으면 더 많은 조언을 드릴 수는 없습니다.

x = 1:5 
data <- lapply(x, function(i){ 
    data.frame(y = 1:5 * i) 
}) 

temp = tibble::tibble(x, data) 
temp 
tidyr::unnest(temp) 
내가 데이터를 가지고 있지 않기 때문에 medline object의 예로서 myeloma을 사용하고자하는
+0

의견을 만들 수 없습니다 – struggles