美文网首页数据-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