我知道如何手动完成。但我想以聪明的方式做到这一点。我很困惑如何使用apply函数。
我想要做的就是对频率列的值求和,并将每个数除以此总和。此外,我必须为大量数据帧执行此操作。
class Frequency
A 1
B 1
C 1
D 1
E 1
F 1
G 1
H 1
I 1
J 1
Sum = 10之后的预期输出。
class Frequency
A .1
B .1
C .1
D .1
E .1
F .1
G .1
H .1
I .1
J .1
另外,我有10个这样的数据帧,比如df1,df2,....,df10。
答案 0 :(得分:2)
使用像这样的列表中的样本数据框
mydata<-replicate(2, data.frame(
class=letters[1:5],
Frequency=rpois(5, 4)),
simplify=FALSE)
您可以使用lapply迭代data.frames列表
lapply(mydata, function(x) transform(x, Frequency=Frequency/sum(Frequency)))