美文网首页
R里的循环语句

R里的循环语句

作者: 超级无敌大蜗牛 | 来源:发表于2020-03-01 21:31 被阅读0次

    读入文件

    a <- read.table("test.txt",header = T)
    a
      Math English Chinese
    1   34      66      45
    2   56      56      34
    3   67      87      67
    4   98      45      87
    5   90      56      98
    

    计算各科成绩的平均值,有以下几种方法

    1、类似于C中的for循环
    for (i in 1:ncol(a))
    {print(mean(as.numeric(a[,i])))}
    [1] 69
    [1] 62
    [1] 66.2
    #如果是求每行的平均值,ncol需要换成nrow;as.numeric将数据框转换成数据格式,方便做统计;
    
    2、apply函数
    apply(a,2,function(x){mean(x)})
       Math English Chinese 
       69.0    62.0    66.2 
    #apply函数中,行是1,列是2;
    #该命令可以直接简写:apply(a,2,mean)
    
    3、colMeans函数
    colMeans(a)
       Math English Chinese 
       69.0    62.0    66.2 
    #如果是每行求平均数,可以用rowMeans
    

    将以上函数的mean改为max就可以求各科的最高成绩,但是colMeans没有对应的求max的函数,我们可以自己写colMax函数,代码如下:

    rowMax=function(x){apply(x,2,max)}
    rowMax(a)
    Math English Chinese 
    98      87      98 
    

    相关文章

      网友评论

          本文标题:R里的循环语句

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