美文网首页数据-R语言-图表-决策-Linux-Python
R for DS 第十六章 使用purrr迭代

R for DS 第十六章 使用purrr迭代

作者: 一路向前_莫问前程_前程似锦 | 来源:发表于2018-11-07 21:07 被阅读8次

for 循环

在开始for循环的时候,你必须要为输出结果分配足够的空间。这对循环效率十分重要,如果每次迭代中都使用的是c()来保存循环的结果,那么for循环的速度就会特别慢。

创建给定长度的空向量的一般方法是使用vector() 函数, 该函数有两个参数:向量类型(“double”,“list”等)和向量长度
seq_along(df)函数和我们熟悉的1:length(df)相同,且更加安全

练习
  1. 计算出mtcars数据集的每列均值
output <- vector("list", ncol(mtcars))
names(output) <- names(mtcars)
for (i in names(mtcars)) {
  output[[i]] <- mean(mtcars[[i]])
}
output
list转data.frame
library(plyr)

kk2=ldply(output,data.frame)

kk=data.frame(output) 

kk3=bind_rows(output)
注意三者的区别

output

image.png image.png

kk2

image.png

kk

image.png

kk3

image.png
  1. 确定flights数据集中每列的类型

out=vector("list",ncol(nycflights13::flights))
names(out) <- names(nycflights13::flights)
for(i in seq_along(out)){
  
  out[[i]]=class(nycflights13::flights[[i]])
  
}
out2=ldply(out,data.frame)

相关文章

网友评论

    本文标题:R for DS 第十六章 使用purrr迭代

    本文链接:https://www.haomeiwen.com/subject/jelbxqtx.html