在R数据帧中用dplyr计算元素之间的比率



假设我们有一个数据帧(df(,如下所示:

a b
1 2
2 4
3 6

如果我想计算向量ab中每个元素的比率,并分配给变量c,我们可以这样做:

c <- df$a / df$b

然而,我想知道如何使用dplyr包来完成同样的事情?也就是说,有什么方法可以使用dplyr中的函数来实现这一点吗?

也许你可以试试下面的代码

df %>%
mutate(c = do.call("/", .))

df %>%
mutate(c = Reduce("/", .))

df %>%
mutate(c = a/b)

带有invoke的选项

library(dplyr)
library(purrr)
df %>% 
mutate(c = invoke('/', .))

-输出

#  a b   c
#1 1 2 0.5
#2 2 4 0.5
#3 3 6 0.5

数据

df <- data.frame(a = c(1,2,3), b= c(2,4,6))

您可以使用dplyr库中的mutate函数:

df <- data.frame(a = c(1,2,3), b= c(2,4,6))
library(dplyr)
df <- df %>%
dplyr::mutate(c = a/b)

控制台输出:

a b   c
1 1 2 0.5
2 2 4 0.5
3 3 6 0.5

最新更新