【问题标题】:Beginner: how can I repeat this function?初学者:我怎样才能重复这个功能?
【发布时间】:2021-02-12 07:40:36
【问题描述】:

我需要 R studio 来分析一些数据,但已经 4 年没用了。

现在我遇到了一个问题,不知道如何解决。我想计算每一行中某些列的变化。通过一些实验,我发现了这一点:

var(as.numeric(data[1,8:33])) 

我得到:1.046154

据我所知,这应该是正确的。它至少应该给我第一人称列中第 8 到 33 项的变化。它也适用于任何其他行:

var(as.numeric(data[5,8:33]))  => 1.046154

现在我当然可以对每一行单独使用相同的东西,但我有 111 名参与者和几个调查。我试图找到一种方法对每一行重复相同的命令,但没有成功。

我如何使用上面的命令并将其重复给所有 111 名参与者?

【问题讨论】:

    标签: r loops row apply repeat


    【解决方案1】:

    没有数据很难提供帮助,但我使用 rnorm 创建了一些虚拟数据。您可以使用 apply 获取包含每行方差的向量。由于您的数据似乎是字符格式而不是数字,因此我创建了一个简单的函数来自动对其进行转换并计算方差。

    set.seed(20)
    data <- matrix(as.character(rnorm(3663)),
                   ncol = 33,
                   nrow = 111)
    
    ##basic function
    obtain_variance_from_character <- function(x){
        return(var(as.numeric(x)))
    }
    
    ##Calculate variances by row
    variances <- apply(data_frame(data), MARGIN = 1, FUN = obtain_variance_from_character)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-28
      • 2012-11-27
      • 1970-01-01
      • 2014-08-11
      相关资源
      最近更新 更多