R 将列中的所有值除以特定行中的值

R 将列中的所有值除以特定行中的值,r,R,我想将列中的所有值除以特定行中的值。下面是一些示例数据 set.seed(123) a <- sample(1:100, 6, replace = TRUE) b <- sample(1:100, 6, replace = TRUE) c <- sample(1:100, 6, replace = TRUE) d <- sample(1:100, 6, replace = TRUE) df <- data.frame(a,b,c,d) df > df

我想将列中的所有值除以特定行中的值。下面是一些示例数据

set.seed(123)
a <- sample(1:100, 6, replace = TRUE)
b <- sample(1:100, 6, replace = TRUE)
c <- sample(1:100, 6, replace = TRUE)
d <- sample(1:100, 6, replace = TRUE)
df <- data.frame(a,b,c,d)

df

> df
   a  b  c  d
1 31 50 69 99
2 79 43 91 72
3 51 14 57 26
4 14 25 92  7
5 67 90  9 42
6 42 91 93  9
set.seed(123)

a您可以重复第1行
nrow
次,然后除以:

df/df[rep(1, nrow(df)), ]

#      a    b     c      d
#1 1.000 1.00 1.000 1.0000
#2 2.548 0.86 1.319 0.7273
#3 1.645 0.28 0.826 0.2626
#4 0.452 0.50 1.333 0.0707
#5 2.161 1.80 0.130 0.4242
#6 1.355 1.82 1.348 0.0909
您还可以使用
扫描

sweep(df, 2, unlist(df[1, ]), `/`)

我想这可能是近十年前我在这里提出的第一个问题的翻版!“Memmmmmorrieseem可能是一些重复的问题,但没有一个问题能把最好的答案集中在一个地方,这是我到目前为止所看到的。”最近的一封邮件说。谢谢,这是一个有用的链接。我是一个R初学者,希望在接下来的十年里,我会有很好的进步!