如何在R中加载多个软件包(附实例)

434 阅读1分钟

你可以使用下面的基本语法在R中一次性加载多个包:

lapply(some_packages, library, character.only=TRUE)

在这个例子中,some_packages代表了一个你想加载的软件包名称的向量。

下面的例子展示了如何在实践中使用这种语法。

例子:在R中加载多个包

下面的代码显示了如何在R中总结一个数据集,并使用三个不同的包创建一个图:

  • dplyr
  • ggplot2
  • ggthemes

在这个例子中,我们使用三个不同的library()函数分别加载每个包:

library(dplyr)
library(ggplot2)
library(ggthemes)

#make this example reproducible
set.seed(0)

#create data frame
df <- data.frame(category=rep(c('A', 'B', 'C', 'D', 'E'), each=10),
                 value=runif(50, 10, 20))

#create summary data frame
df_summary <- df %>%
  group_by(category) %>%
  summarize(mean=mean(value),
            sd=sd(value))

#plot mean value of each category with error bars
ggplot(df_summary) +
    geom_bar(aes(x=category, y=mean), stat='identity') +
    geom_errorbar(aes(x=category, ymin=mean-sd, ymax=mean+sd), width=0.3) +
    theme_tufte()

使用这段代码,我们能够加载所有三个包,并产生一个总结数据集中数值的图。

然而,我们可以使用 lapply()函数实现同样的结果,只用一行代码就可以加载所有三个包:

#define vector of packages to load
some_packages <- c('ggplot2', 'dplyr', 'ggthemes')

#load all packages at once
lapply(some_packages, library, character.only=TRUE)

#make this example reproducible
set.seed(0)

#create data frame
df <- data.frame(category=rep(c('A', 'B', 'C', 'D', 'E'), each=10),
                 value=runif(50, 10, 20))

#create summary data frame
df_summary <- df %>%
  group_by(category) %>%
  summarize(mean=mean(value),
            sd=sd(value))

#plot mean value of each category with error bars
ggplot(df_summary) +
    geom_bar(aes(x=category, y=mean), stat='identity') +
    geom_errorbar(aes(x=category, ymin=mean-sd, ymax=mean+sd), width=0.3) +
    theme_tufte()

再一次,我们能够加载所有三个包并产生与之前相同的图。

不同的是,这次我们只用了一行代码就能加载所有三个包。

当你想加载一长串软件包而不需要每次都输入 library()函数时,这个lapply()函数特别有用。