标准化R中的数据帧

问题描述 投票:0回答:1

我有一个命名为具有某些语义特征的示例的数据框:

 > str(examples)
Classes ‘spec_tbl_df’, ‘tbl_df’, ‘tbl’ and 'data.frame':    50 obs. of  12 variables:
 $ filename      : chr  "Text01" "Text02" "Text03" "Text04" ...
 $ Control       : num  1 3 0 0 0 6 0 1 0 1 ...
 $ Economic      : num  1 3 0 0 0 0 1 0 1 2 ...
 $ ExternalVoices: num  1 2 1 1 1 2 1 4 0 1 ...
 $ JobsSkills    : num  0 0 0 0 0 2 0 3 0 0 ...
 $ LegalStatus   : num  0 3 4 0 5 0 1 0 4 0 ...
 $ Modals        : num  4 6 1 5 4 4 2 6 2 2 ...
 $ Orign         : num  2 6 8 6 3 5 3 3 2 6 ...
 $ Sanctions     : num  1 3 0 3 0 3 2 1 1 0 ...
 $ Subjectivisms : num  2 3 4 4 3 2 1 1 2 4 ...
 $ Verbs         : num  3 7 3 11 6 2 7 7 4 5 ...
 $ LineTotal         : num  130 274 258 419 268 210 379 244 172 199 ...
 - attr(*, "spec")=
  .. cols(
  ..   filename = col_character(),
  ..   Control = col_double(),
  ..   Economic = col_double(),
  ..   ExternalVoices = col_double(),
  ..   JobsSkills = col_double(),
  ..   LegalStatus = col_double(),
  ..   Modals = col_double(),
  ..   Orign = col_double(),
  ..   Sanctions = col_double(),
  ..   Subjectivisms = col_double(),
  ..   Verbs = col_double(),
  ..   LineTotal = col_double()
  .. )
head(examples)
 A tibble: 6 x 12
  filename Control Economic ExternalVoices JobsSkills LegalStatus Modals Orign Sanctions Subjectivisms Verbs LineTotal
  <chr>      <dbl>    <dbl>          <dbl>      <dbl>       <dbl>  <dbl> <dbl>     <dbl>         <dbl> <dbl> <dbl>
1 Text01         1        1              1          0           0      4     2         1             2     3   130
2 Text02         3        3              2          0           3      6     6         3             3     7   274
3 Text03         0        0              1          0           4      1     8         0             4     3   258
4 Text04         0        0              1          0           0      5     6         3             4    11   419
5 Text05         0        0              1          0           5      4     3         0             3     6   268
6 Text06         6        0              2          2           0      4     5         3             2     2   210

我需要应用一个公式,该公式将每个单元格的值乘以1000,然后将其除以行的总数,即递归除以“ LineTotal”列:

((cellx1000)/ LineTotal

LineTotal每行更改。

我什至都没有想办法完成它。任何帮助都会很棒!

谢谢!

r dataframe normalization normalize
1个回答
0
投票

我认为这就是您要寻找的(examples是您的数据框)

examples_n <- data.frame(matrix(unlist(lapply(1:ncol(examples), function(X) examples[,X]*1000/colSums(examples)[X])),nrow=NROW(examples),ncol=NCOL(examples)))
© www.soinside.com 2019 - 2024. All rights reserved.