在R中,如何将一行中的每个值转换为该行总和的比例?

use*_*887 2 r matrix frame

我的数据看起来像这样:

1    55   41   61   73   75   75   84
2    18   29   26   27   24   21   14
3    19   15   18   28   26   16   13
4    26   36   36   42   32   22   21
Run Code Online (Sandbox Code Playgroud)

我想将每一行除以总数,以将行转换为总数的比例:

mydata[1,]/sum(mydata[1,])

1 0.1185345 0.08836207 0.1314655 0.1573276 0.1616379 0.1616379 0.1810345
Run Code Online (Sandbox Code Playgroud)

...对于整个数据集。我可以单独执行它们,如何对所有行执行此操作?

akr*_*run 5

你可以试试rowSums

mydata/rowSums(mydata)
#        V1         V2        V3        V4        V5        V7         V8
#1 0.1185345 0.08836207 0.1314655 0.1573276 0.1616379 0.1616379 0.18103448
#2 0.1132075 0.18238994 0.1635220 0.1698113 0.1509434 0.1320755 0.08805031
#3 0.1407407 0.11111111 0.1333333 0.2074074 0.1925926 0.1185185 0.09629630
#4 0.1209302 0.16744186 0.1674419 0.1953488 0.1488372 0.1023256 0.09767442
Run Code Online (Sandbox Code Playgroud)