2017-03-11 3 views
0

Leider ist es nicht genug Dokumentation xml-tei in R noch für die Analyse, vor allem für einen Anfänger in R.xml-tei in R: Länge (Knoten) mit einem anderen Wert

ich mehrere Knoten verlasse mich mit Funktion 'getNodeSet' die nur einen anderen Wert in 'contains' haben. Ziel ist es, '@ type = Verb' nach bestimmten 'contains' zu zählen, die alle in commun 'contains (@ana,' # action ')' enthalten. Beispiele:

#different value "@ana, '#displacement'" 
nodes=getNodeSet(doc,"//ns:w[contains(@type,'verb') and contains(@ana,'#action') and contains(@ana, '#displacement') and contains(@ana, '#ANT')]", ns) 
VARIABLE NAME01 <- length(nodes) 
VARIABLE NAME01 
#result in the console [2] 

#different value "@ana, '#put_together'" 
nodes=getNodeSet(doc,"//ns:w[contains(@type,'verb') and contains(@ana,'#action') and contains(@ana, '#put_together') and contains(@ana, '#ANT')]", ns) 
VARIABLE NAME02 <- length(nodes) 
VARIABLE NAME02 
#result in the console [0] 

#different value "@ana, '#destruction'" 
nodes=getNodeSet(doc,"//ns:w[contains(@type,'verb') and contains(@ana,'#action') and contains(@ana, '#destruction') and contains(@ana, '#ANT')]", ns) 
VARIABLE NAME03 <- length(nodes) 
VARIABLE NAME03 
#result in the console [7] 

Aber es ist natürlich sehr mühsam, jedes Mal im Grunde die gleichen Dinge zu schreiben und es ist nicht sehr schön.

Ist es möglich, so etwas zu haben (sorry, nicht propertly codiert, um nur ein Beispiel mein Bedürfnis zu folgen):

#a condition 
For node=getNodeSet(doc,"//ns:w[contains(@type,'verb') and contains(@ana,'#action') and not(contains(@ana, '#ANT'))]" 
#add in contains 
( 
(@ana, ‘DIFFERENT VALUE01') FOR VARIABLE01 
(@ana, ‘DIFFERENT VALUE02') FOR VARIABLE02 
(@ana, ‘DIFFERENT VALUE03') FOR VARIABLE03 
) 
#etc. 

Haben Sie eine Idee?

Nach, ich brauche das Ergebnis hinzufügen zu können:

add_result <- sum(VARIABLE NAME01, VARIABLE NAME02, VARIABLE NAME03) 
add_result 

Aber dann dachte ich an:

nodes=sum(
(getNodeSet(doc,"//ns:w[contains(@ana,'#action') and contains(@type,'verb')]", ns)), 
(getNodeSet(doc,"//ns:w[contains(@type,'verb') and contains(@type,'verb')]", ns)) 
) 
add_result <- length(nodes) 
add_result 

und ich sehe dann für den anderen Knoten mit einem anderen Wert . Aber leider funktioniert es nicht.

Im Voraus, danke für Ihre Vorschläge.

+0

Was ich bisher gemacht habe: – Vanessa

Antwort

0

Ein Kollege, 'R' Spezialist, hat mir geholfen, und vorgeschlagen:

typeAction=c("'#displacement'","'#put_together'","'#agression'","'#confrontation'","'#movement'","'#otherAction'") 
total_action_ANT=0 
for (i in 1:length(typeAction)) total_action_ANT=total_action_ANT+length(getNodeSet(doc,paste0("//ns:w[contains(@type,'verb') and contains(@ana,'#action') and contains(@ana, ",typeAction[i],") and contains(@ana, '#ANT')]"), ns)) 
total_action_ANT 

nodelist=list() 
for (i in 1:length(typeAction))nodelist[[i]]=getNodeSet(doc,paste0("//ns:w[contains(@type,'verb') and contains(@ana,'#action') and contains(@ana, ",typeAction[i],") and contains(@ana, '#ANT')]"), ns) 
str(nodelist) 
resultats = cbind(action=typeAction,occurences=unlist(lapply(nodelist,function(x)length(x)))) 
resultats 

Es funktioniert super! Hoffe, das wird helfen.

0

Was ich bisher tat:

nodes=getNodeSet(doc,"//ns:w[contains(@type,'verb') and contains(@ana,'#action') and contains(@ana, '#displacement') and contains(@ana, '#ANT')]", ns) 
nodes=getNodeSet(doc,"//ns:w[contains(@type,'verb') and contains(@ana,'#action') and contains(@ana, '#put_together') and contains(@ana, '#ANT')]", ns) 
VARIABLE NAME01 <- length(nodes) 
VARIABLE NAME02 <- length(nodes) 

Sie wissen nicht, ob es einen einfacheren Weg, es zu tun.

+0

Leider funktioniert es nicht ... – Vanessa

Verwandte Themen