【发布时间】:2016-01-13 00:01:00
【问题描述】:
我想知道如何使用循环函数来计算
apply(table(data$people,data$event),2,function(x) mean(x[x>0]))
对于每个级别的颜色。我的意思是,我想为每个颜色级别计算上述函数。
people <-c("R1","R2","R2","R3","R3","R4","R4","R4","R4","R3","R3","R3","R3","R2","R2","R2","R5","R6")
event<-c("a","b","b","M","s","f","y","b","a","a","a","a","s","c","c","b","m","a")
Colour<-c("red","blue","green","pink","red","blue","grean","red","red","black","pink","blue","blue","green","blue","green","green","red")
data<-data.frame(people,event,Colour)
【问题讨论】:
-
请不要留下
algorithm标签,因为这个问题与算法设计无关。 -
你想要的输出是什么?目前还不是很清楚你想做什么。
-
让我试着把话放在你的嘴里,你告诉我我是否正确:对于每个
Colour,你想计算每个event处people的数量并总结这是所有参加活动中people的平均数量(仅包括在平均值中的非零出席人数)。是这样吗? -
@David Arenburg,例如当 Colour="red" 计算上述函数时。而不是使用子集,我想使用循环函数。
-
R 中的最佳实践是尽可能避免循环,因为它们 [在 R 中] 非常慢。相反,您需要对代码进行矢量化。
*apply系列函数允许类似的功能,dplyr也是如此,通常更具可读性。
标签: r