如何在r中将一列数除以一列

pap*_*loo 2 r divide

我有以下数据集:我在r中执行以下操作:

Monday Tuesday Wednesday Friday Saturday Total
2       3      4          5      6        20
3       6      7          5      1        22
Run Code Online (Sandbox Code Playgroud)

我需要分为2/20,3/2,4/20,5/20,6/20和第二行,3/22,6/22,7/22,5/22,1/22.我可以通过提取列来实现这一点,但这很长很乏味,请一定要有一个更简单的方法

mto*_*oto 9

你可以干脆做

df[,1:5] / df[,6] 
Run Code Online (Sandbox Code Playgroud)

  • 我将在上面为下一个白痴留下我的评论。关于我自己的评论:您需要转换为“data.frame”。 (3认同)
  • 请注意,无论数据结构是矩阵还是 data.frame,相同的语法都适用。 (2认同)

小智 7

您可以使用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))
Run Code Online (Sandbox Code Playgroud)

然后返回:

     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
Run Code Online (Sandbox Code Playgroud)