Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:在两个数据帧中跨多个列计算ICC_R_Loops_Statistics - Fatal编程技术网

R:在两个数据帧中跨多个列计算ICC

R:在两个数据帧中跨多个列计算ICC,r,loops,statistics,R,Loops,Statistics,我正在计算两个读卡器的301个变量的ICC。结果保存在两个文件中,每个文件有301列。file1的第一列(reader1$Var1)对应于file2的第一列(reader2$Var302)。我可以手动执行ICC(见下文),但我需要帮助使用apply或循环自动执行此过程。多谢各位 library(irr) irr::icc() a= data.frame(reader1$Var1) b= data.frame(reader2$Var302) X= data.frame (a,b) function

我正在计算两个读卡器的301个变量的ICC。结果保存在两个文件中,每个文件有301列。file1的第一列(reader1$Var1)对应于file2的第一列(reader2$Var302)。我可以手动执行ICC(见下文),但我需要帮助使用apply或循环自动执行此过程。多谢各位

library(irr)
irr::icc()
a= data.frame(reader1$Var1)
b= data.frame(reader2$Var302)
X= data.frame (a,b)
function.ICC <- function (X) {irr::icc(X, model =c("oneway"), type = c("consistency"), unit =("single"), r0 = 0, conf.level = 0.95)}
Results <- function.ICC(X)
Results[7]
库(irr)
内部收益率::国际商会()
a=data.frame(reader1$Var1)
b=data.frame(reader2$Var302)
X=数据帧(a,b)

function.ICC将
lappy
do.call
组合在一起可以解决您的问题(尽管有很多选择)。您没有提供数据样本,因此我假设您首先对两个数据帧逐个执行
cbind
,因此在本示例中

> X = data.frame(cbind(1:10, 11:20, 21:30, 21:30))
> X
   X1 X2 X3 X4
1   1 11 21 21
2   2 12 22 22
3   3 13 23 23
4   4 14 24 24
5   5 15 25 25
6   6 16 26 26
7   7 17 27 27
8   8 18 28 28
9   9 19 29 29
10 10 20 30 30
您希望运行X1对X3和X2对X4的
icc
。根据您定义的
function.ICC
,它将类似于以下内容:

> do.call(cbind, lapply(1:2, function(i) function.ICC(X[,c(i, i+2)])))
           [,1]          [,2]         
subjects   10            10           
raters     2             2            
model      "oneway"      "oneway"     
type       "consistency" "consistency"
unit       "single"      "single"     
icc.name   "ICC(1)"      "ICC(1)"     
value      -0.8320611    -0.4634146   
r0         0             0            
Fvalue     0.09166667    0.3666667    
df1        9             9            
df2        10            10           
p.value    0.9993158     0.926668     
conf.level 0.95          0.95         
lbound     -0.9526347    -0.8231069   
ubound     -0.4669701    0.1848105  
因此,对于具有301列的cbind'ed数据帧,类似于此的内容应该可以工作:

do.call(cbind, lapply(1:301, function(i) function.ICC(X[,c(i, i+301)])))