是否有一个 R 函数可以在一个已经存在的函数中逐行实现列变量并循环它?

Is there an R function to implement column variables row by row in an already existing function and loop that?

:)

标题比较复杂,但问题也很复杂。 简短: 我在 R 中有一个命令为特定的 raw-value 和特定的 age-value 打印 T-Value。所以 原始 + 年龄 = T-Value。我必须为 999 个科目这样做。数据在jamovi和R中。所以这是自由选择。

R-package是cNORM,使用的命令是:predictNorm(Raw,Age,model1,minNorm = 0,maxNorm = 100)

通常似乎不打算放入列名。 所以通常程序希望您填写唯一的值。有没有一种方法可以编写一种循环遍历“raw”和“age”两行并填充必要的空格逐行具有这些值的命令?在最好的情况下直接打印出来?

如果还有什么不清楚的,欢迎随时提问。我很高兴能得到任何帮助。

删除失败的方法。

tidyversepurrr 包中有一系列 map 函数。 map2 簇允许您将 2 个向量传递给一个函数。 map2 将为每个向量对执行函数迭代。这是一个 map2_dbl 的示例,其中 returns 是一个数字向量:

library(tidyverse)
cyl <- mtcars$cyl
mpg <- mtcars$mpg

result <- map2_dbl(cyl, mpg, function(x,y) sqrt(x * y))
result
 [1] 11.224972 11.224972  9.549869 11.331372 12.231108 10.421132 10.695794  9.879271  9.549869
[10] 10.733126 10.334409 11.454257 11.764353 11.027239  9.121403  9.121403 10.844353 11.384200
[19] 11.027239 11.644741  9.273618 11.135529 11.027239 10.315038 12.393547 10.449880 10.198039
[28] 11.027239 11.242775 10.871982 10.954451  9.252027

所以在你的情况下,公式是

library(tidyverse)
raw <- df$raw
age <- df$age
result <- map2_dbl(raw, age, function(x, y) predictNorm(x,y, model1,minNorm = 0,maxNorm = 100)

map2 使用匿名函数 function(x, y) 将向量对放置在 predictNorm 函数的正确位置。

cNORM 包的 predictNorm 也接受向量以及原始和年龄或单个值。如果您提供年龄和原始分数的向量,请确保两者具有相同数量的元素。

示例,取自带有内置数据集的文档(2.0.3 版)'elfe':

cnorm.elfe <- cnorm(raw = elfe$raw, group = elfe$group)
age <- c(2.4, 2.9, 3.1, 1.9, 4.3)
raw <- c(14, 8, 19, 10, 12)
predictNorm(raw, age, cnorm.elfe)