使用适用于行

时间:2014-03-29 19:41:41

标签: r row apply

我有一个简单的数据框。

  V1 V2 V3
1  1  4  7
2  2  5  8
3  3  6  9

我想将每行中的条目除以该行中所有条目的总和,并得到:

  V1 V2 V3
1  0.08 0.33 0.58
2  0.13 0.33 0.53
3  0.16 0.33 0.50

使用mydf[1,]/sum(mydf[1,])非常简单并重复3次,但这很乏味。

我有一种直观的感觉,即应用功能可以起作用。

我有一个模糊的概念我需要:
1)将mydf[1,]/sum(mydf[1,])放入功能封装器中 2)使用apply(myfunction, 1, mydataframe)

但我不确定myfunction的论点是什么。

我对此感到有些困惑,感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

dat <- data.frame(matrix(1:9, nrow=3))
dat / rowSums(dat)

您也可以使用apply,但它会返回一个矩阵(并要求您使用t进行转置。)

t(apply(dat, 1, FUN=function(x) x / sum(x)))