我有以下数据集: 我在r:
中进行以下操作./startup.sh
我需要分为2 / 20,3 / 2,0,4 / 20,5 / 20,6 / 20 在第二行,3 / 22,6 / 22,7 / 22,5 / 22,1 / 22。 我可以通过提取列来实现这一点,但这很长很乏味,请一定要有一个更简单的方法
答案 0 :(得分:7)
你可以简单地做
df[,1:5] / df[,6]
答案 1 :(得分:0)
您可以使用 dlyr
在多列上按行操作:
library(tidyverse)
library(margrittr)
df <- data.frame(
Monday=c(2,3),
Tuesday=c(3,6),
Wednesday=c(4,7),
Friday=c(5,5),
Saturday=c(6,1),
Total=c(20,22))
df %>%
mutate(
across(c(1:5),
.fns = ~./Total))
然后返回:
Monday Tuesday Wednesday Friday Saturday Total
1 0.1000000 0.1500000 0.2000000 0.2500000 0.30000000 20
2 0.1363636 0.2727273 0.3181818 0.2272727 0.04545455 22