将每一行除以一个常数并创建一个新列
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) 乘以它的频率。
我想创建一个名为 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) 乘以它的频率。