我如何在特定列上操作?

时间:2015-02-06 20:12:02

标签: r

我知道如何手动完成。但我想以聪明的方式做到这一点。我很困惑如何使用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。

1 个答案:

答案 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)))