これは長い間巻き込まれているので、私と一緒に裸にしてください。リストの各親ノードのxmlchildrenの数を計算するR
entrez_fetchは一度に特定の番号しか実行できないため、私は2000個のPMIDをいくつかのベクトル(長さがそれぞれ約500)で1つのリストに分解しました。 。私がPubMEDを照会すると、各出版物のXMLファイルから情報を抽出しています。私は終わりにしたいと思いますが、このようなものです:
Original.PMID Publication.type
26956987 Journal.article
26956987 Meta.analysis
26956987 Multicenter.study
26402000 Journal.article
25404043 Journal.article
25404043 Meta.analysis
各公報には、ユニークなPMIDを持っていますが、各PMIDに関連するいくつかの出版物の種類(上で見たような)があるかもしれません。私はXMLファイルからPMID番号を問い合わせることができ、各PMIDの公開タイプを取得できます。私が問題を抱えているのは、各PMIDがそれぞれのパブリケーションタイプに関連付けられるようにPMID×回数を繰り返すことです。親のPublicationTypeノードから子ノードの数を取得することによって、複数のサブリストを持つリストに自分のデータがない場合(たとえば、それぞれが独自のデータフレームとして14個のバッチがある場合)、これを行うことができます。しかし、リスト内でこれをどうやって行うのか分かりません。
私のコードは、これまでのところ、このです:
library(rvest)
library(tidyverse)
library(stringr)
library(regexr)
library(rentrez)
library(XML)
pubmed<-my.data.frame
into.batches<-function(x,n) split(x,cut(seq_along(x),n,labels=FALSE))
batches<-into.batches(pubmed.fwd$PMID, 14)
headings<-lapply(1:14, function(x) {paste0("Batch",x)})
names(batches)<-headings
fwd<-sapply(batches, function(x) entrez_fetch(db="pubmed", id=x, rettype="xml", parsed=TRUE))
trial1<-lapply(fwd, function(x)
list(pub.type = xpathSApply(x, "//PublicationTypeList/PublicationType", xmlValue),
or.pmid = xpathSApply(x, "//ArticleId[@IdType='pubmed']", xmlValue)))
trial1は私が問題を抱えていますものです。これは、各バッチ内でpub.type用のベクトルとor.pmid用のベクトルを持っているが、それらは異なる長さであるリストを私に提供する。
私は各出版物にいくつの子供の出版物の種類があるか把握しようとしています。そのため、私はPMIDを何回も繰り返すことができます。私は現在、私がやりたいことはありません、次のコードを使用しています:
残念ながら、これはちょうど子供の総数は、各バッチのではなく、各パブリケーション(またはPMID)のためにノードを教えてください。私は迷っている。どんな助けでも大歓迎です、ありがとうございます!