用常数除以每一行并创建一个新列

时间:2019-12-02 15:00:00

标签: r divide

我想创建一个新的名为百分比的列,并按数据框将其添加到其中。此列应由每行除以常数13197并乘以100组成。有人可以帮助完成此任务吗?

这是我数据框的头。

   Var1 Freq
1 01085    6
2 01602   34
3 01845   31
4 03824    1
5 04011   16
6 04102    2

3 个答案:

答案 0 :(得分:2)

df$percent <- 100*df$freq/13197

答案 1 :(得分:2)

最简单的方法是使用dplyr

library(dplyr)

df <- mutate(df, perc = Freq/sum(Freq) * 100) 

这将避免您必须除以一个常数(而是将其除以名为“ Freq”的列的总和)。

如果需要常量,代码将为:

df <- mutate(df, perc = Freq/13197 * 100) 

当然,除了使用软件包外,您还可以在base R中使用

df$perc = df$Freq/13197 * 100) 

答案 2 :(得分:1)

df$percentage <-   (df$Var1) * (df$Freq) * (100) / (13197)

您可以直接参考新列,并以此方式进行分配。我假设您需要将(df $ Var1)乘以它的频率。