R 将行中的每一项除以一个特定值

R 将行中的每一项除以一个特定值,r,R,我想将行中的每个条目除以包含在同一数据帧中的列中的特定数字 假设我们有一个数据框,有6列3行,最后一列有我想用作分母的数字: A <- c(4, 5, 10) B <- c(8, 45, 2) C <- c(7, 4, 0) D <- c(98, 32, 12) E <- c(1, 3, 11) df <- data.frame(A, B, C, D, E) df$particular_number<-c(22, 34, 23) A试试这个 库(da

我想将行中的每个条目除以包含在同一数据帧中的列中的特定数字

假设我们有一个数据框,有6列3行,最后一列有我想用作分母的数字:

A <- c(4, 5, 10)
B <- c(8, 45, 2)
C <- c(7, 4, 0)
D <- c(98, 32, 12)
E <- c(1, 3, 11)

df <- data.frame(A, B, C, D, E)
df$particular_number<-c(22, 34, 23)
A试试这个

库(data.table)
setDT(df)[,.SD/特定编号]
#>A B C D E特定_编号
#> 1: 0.1818182 0.36363636 0.3181818 4.4545455 0.04545455                 1
#> 2: 0.1470588 1.32352941 0.1176471 0.9411765 0.08823529                 1
#> 3: 0.4347826 0.08695652 0.0000000 0.5217391 0.47826087                 1

由(v2.0.0)于2021-06-04创建,您可以直接将
特定的\u编号
列与数据框中的所有列分开。如果
特定的\u编号
列是数据帧中的最后一列,则可以使用
-ncol(df)
忽略该列


df[-ncol(df)]另一个选项是
rbind((df[1,]/22)、(df[2,]/34)、(df[3,]/23))
或者更一般地说
rbind(df[1,1:5]/df[1,6],df[2,1:5]/df[2,6],df[3,1:5]/df[3,6])
使用
tidyverse

library(dplyr)
df <- df %>%
      mutate(across(A:E, ~ ./particular_number))
df
#          A          B         C         D          E particular_number
#1 0.1818182 0.36363636 0.3181818 4.4545455 0.04545455                22
#2 0.1470588 1.32352941 0.1176471 0.9411765 0.08823529                34
#3 0.4347826 0.08695652 0.0000000 0.5217391 0.47826087                23
库(dplyr)
df%
变异(跨越(A:E,~./特定_编号))
df
#A B C D E特定_编号
#1 0.1818182 0.36363636 0.3181818 4.4545455 0.04545455                22
#2 0.1470588 1.32352941 0.1176471 0.9411765 0.08823529                34
#3 0.4347826 0.08695652 0.0000000 0.5217391 0.47826087                23

工作正常,谢谢!不客气。
library(dplyr)
df <- df %>%
      mutate(across(A:E, ~ ./particular_number))
df
#          A          B         C         D          E particular_number
#1 0.1818182 0.36363636 0.3181818 4.4545455 0.04545455                22
#2 0.1470588 1.32352941 0.1176471 0.9411765 0.08823529                34
#3 0.4347826 0.08695652 0.0000000 0.5217391 0.47826087                23