我有一个简单的数据框。
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
的论点是什么。
我对此感到有些困惑,感谢任何帮助。
答案 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)))