我想知道是否有一种更直接的方式来计算某种类型的变量而不是我通常采用的方法....
下面的例子可能最好地解释了它.我有一个包含2列的数据框(水果和水果是否腐烂).我想,对于每一行,添加例如腐烂的同一类别的水果的百分比.例如,苹果有4个条目,其中2个是烂的,因此苹果的每一行应为0.5.目标值(纯粹如图)包含在"所需结果"列中.
我以前通过*在fruit变量上使用"ddply"命令(以sum/lenght作为函数)来解决这个问题,创建一个新的3*2数据帧*使用"merge"命令将这些值链接回旧数据帧.
这感觉就像一个迂回的方式,我想知道是否有更好/更快的方式这样做!理想的是一种通用的方法,如果一个而不是百分比需要确定例如所有水果是否腐烂,任何水果腐烂等等,都可以轻松调整....
提前谢谢了,
w ^
Fruit Rotten Desired_Outcome_PercRotten
1 Apple 1 0.5
2 Apple 1 0.5
3 Apple 0 0.5
4 Apple 0 0.5
5 Pear 1 0.75
6 Pear 1 0.75
7 Pear 1 0.75
8 Pear 0 0.75
9 Cherry 0 0
10 Cherry 0 0
11 Cherry 0 0
#create example datagram; desired outcome columns are purely inserted as illustrative of target outcomes
Fruit=c(rep("Apple",4),rep("Pear",4),rep("Cherry",3))
Rotten=c(1,1,0,0,1,1,1,0,0,0,0)
Desired_Outcome_PercRotten=c(0.5,0.5,0.5,0.5,0.75,0.75,0.75,0.75,0,0,0)
df=as.data.frame(cbind(Fruit,Rotten,Desired_Outcome_PercRotten))
df
Run Code Online (Sandbox Code Playgroud)