2016-11-18 5 views
-3

Bitte entschuldigen Sie meine schrecklichen Sprachkenntnisse - ich habe mich erst vor ein paar Stunden damit befasst.R - was macht diese tapply() Funktion?

Ich versuche diesen Code zu verstehen und was es produziert, aber ziemlich unsicher. Angesichts der Tatsache, dass der Wert inclusions ist 10, warum ist die Ausgabe, was es ist?

seps <- tapply(diff, nonCore, function(x) sort(x)[inclusions])

Ausgänge

"","x" 
"ab",23 
"ad",15 

Der Wert von diff ist

"","x" 
"1",31 
"2",43 
"3",37 
"4",22 
"5",27 
"6",13 
"7",24 
"8",7 
"9",26 
"10",29 
"11",2 
"12",15 
"13",10 
"14",38 
"15",23 
"16",21 
"17",46 
"18",10 
"19",20 
"20",46 
"21",20 
"22",32 
"23",26 
"24",11 
"25",16 
"26",2 
"27",13 
"28",4 
"29",15 
"30",18 
"31",13 
"32",26 
"33",1 
"34",27 
"35",12 
"36",10 
"37",35 
"38",21 
"39",9 
"40",35 

Der Wert von nonCore ist

"","x" 
"1","ab" 
"2","ab" 
"3","ab" 
"4","ab" 
"5","ab" 
"6","ab" 
"7","ab" 
"8","ab" 
"9","ab" 
"10","ab" 
"11","ab" 
"12","ab" 
"13","ab" 
"14","ab" 
"15","ab" 
"16","ab" 
"17","ab" 
"18","ab" 
"19","ab" 
"20","ab" 
"21","ad" 
"22","ad" 
"23","ad" 
"24","ad" 
"25","ad" 
"26","ad" 
"27","ad" 
"28","ad" 
"29","ad" 
"30","ad" 
"31","ad" 
"32","ad" 
"33","ad" 
"34","ad" 
"35","ad" 
"36","ad" 
"37","ad" 
"38","ad" 
"39","ad" 
"40","ad" 
+3

Haben Sie schon die Hilfe-Datei untersuchen Sie erhalten bei der Eingabe von 'tapply' in der R-Konsole? Hast du die Beispiele ausgeführt? – Uwe

+0

Ich weiß, was es tut, nur nicht verstehen, warum es das Ergebnis bei der Eingabe produziert – nogias

+0

Mögliche Duplikate von [R Grouping-Funktionen: sapply vs lapply vs gelten. vs. tapply vs. vs. aggregate] (http://stackoverflow.com/questions/3505701/r-grouping-functions-sapply-vs-lapply-vs-apply-vs-tapply-vs-by-vs-aggrega) – timat

Antwort

1

Sie sollten den Code zum Erstellen der Vektoren diff und nonCore liefern, da es die sind, die Ihnen helfen können, massive Änderungen vorzunehmen ...

Das sagte, was passiert ist, dass Sie die Kombination der Vektoren sortieren zu ab und und ad. ab passt auf die ersten 20 in diff und ad die letzten 20. Dann unterteilen Sie einfach die Liste, die mit der Elementnummer erstellt wird, die durch Aufnahme angegeben wird.

Es ist das gleiche wie die Funktion ohne [inclusion] läuft und tut dies danach:

sep[[1]][10] 
sep[[2]][10]