-3

Please excuse my terrible knowledge of the language - just started looking at it a few hours ago.

I'm trying to understand this code and what it produces but quite unsure. Given that the value of inclusions is 10, why is the output what it is?

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

Outputs

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

The value of diff is

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

The value of nonCore is

"","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"
nogias
  • 563
  • 2
  • 6
  • 23
  • 3
    Have you already studied the help file you get when entering `?tapply` in the R console? Did you ran the examples? – Uwe Nov 18 '16 at 07:44
  • I know what it does, just don't understand why it produces that result given the input – nogias Nov 18 '16 at 07:54
  • Possible duplicate of [R Grouping functions: sapply vs. lapply vs. apply. vs. tapply vs. by vs. aggregate](http://stackoverflow.com/questions/3505701/r-grouping-functions-sapply-vs-lapply-vs-apply-vs-tapply-vs-by-vs-aggrega) – timat Nov 18 '16 at 07:56

1 Answers1

1

You should supply the code to construct the vectors diff and nonCore, as it is those who could help you need to do massive edits...

That said, what is happening is that your sorting the combination of the vectors according to ab and and ad. ab matches against the first 20 in diff and ad the last 20. Then you just subset the list that is created with the element number that is given by inclusion.

It's the same as running the function without [inclusion] and doing this afterwards:

sep[[1]][10]
sep[[2]][10]
ErrantBard
  • 1,421
  • 1
  • 21
  • 40