2016-11-18 107 views
-3

請原諒我對語言的恐懼 - 幾個小時前剛開始看這個語言。R - 這個tapply()函數做了什麼?

我試圖理解這段代碼,它產生了什麼,但很不確定。鑑於inclusions的值是10,爲什麼輸出是什麼?

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

輸出

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

diff值是

"","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 

nonCore值是

"","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

你是否已經研究了幫助文件你'在R控制檯tapply'?你是否運行過這些例子? – Uwe

+0

我知道它做了什麼,只是不明白爲什麼它產生的結果輸入 – nogias

+0

可能重複的[R分組功能:sapply與樂聲vs.適用。 vs. tapply vs. by aggregate](http://stackoverflow.com/questions/3505701/r-grouping-functions-sapply-vs-lapply-vs-apply-vs-tapply-vs-by-vs-aggrega ) – timat

回答

1

應提供的代碼來構建載體diffnonCore,因爲它是那些誰可以幫助你需要做大量的修改...

這就是說,正在發生的事情是,你的排序根據載體的組合到ab和和ad。 ab與diff中的前20位相匹配,並與最後20位相匹配。然後,您只是使用由包含給出的元素編號創建的列表的子集。

它與運行功能,不[inclusion]和這樣算賬:當進入

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