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

Divide each row by a constant and create a new column

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

这是我的数据框的头部。

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

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

最简单的方法是使用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) 
df$percentage <-   (df$Var1) * (df$Freq) * (100) / (13197)

你可以直接引用新列,这样赋值。我假设您需要将 (df$Var1) 乘以它的频率。