2016-11-18 101 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]