我经常在我的代码中使用循环。有人告诉我,与其使用循环,我应该使用函数,并且可以使用R包purr中的函数重写循环。
例如,该代码仅显示iris数据集中Sepal.Width<3的不同物种的计数。
library(dplyr)
#dataframe to put the output in
sepaltable <- data.frame(Species=character(),
Total=numeric(),
stringsAsFactors=FALSE)
#list of species to iterate over
specieslist<-unique(iris$Species)
#loop to populate the dataframe with the name of the species
#and the count of how many there were in the iris dataset
for (i in seq_along (specieslist)){
a<-paste(specieslist[i])
b<- filter(iris,`Species`==a & Sepal.Width <=3)
c<-nrow(b)
sepaltable[i,"Species"]<-a
sepaltable[i,"Total"]<-c
}
循环将物种的名称和它们在鸢尾花数据集中的数量填充到sepaltable数据帧中。我想使用R包purrr中的函数复制此循环的效果,而不使用循环。有人能帮忙吗?