首页 > 解决方案 > 初学者:我怎样才能重复这个功能?

问题描述

我需要 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 名参与者?

标签: rloopsrowapplyrepeat

解决方案


没有数据就很难提供帮助,但我使用 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)

推荐阅读