Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
rmcorr:使用变量传递列名_R_String_Correlation_Do.call - Fatal编程技术网

rmcorr:使用变量传递列名

rmcorr:使用变量传递列名,r,string,correlation,do.call,R,String,Correlation,Do.call,我尝试使用R软件包对重复样本进行数据分析。 我想让它遍历所有的列对,并估计它们的相关性。问题是rmcorr只接受不带引号的列名作为参数: >>RMCORR受试者,PacO2,pH,布兰德1995 因此,类似于rmcorrcolnamesbland1995[1],colnamesbland1995[2],colnamesbland1995[3],bland1995的表达式会抛出一个错误: 所以我希望do.call能帮助我。哈哈,肥茶 >> do.call('rmcorr', args

我尝试使用R软件包对重复样本进行数据分析。 我想让它遍历所有的列对,并估计它们的相关性。问题是rmcorr只接受不带引号的列名作为参数: >>RMCORR受试者,PacO2,pH,布兰德1995 因此,类似于rmcorrcolnamesbland1995[1],colnamesbland1995[2],colnamesbland1995[3],bland1995的表达式会抛出一个错误:

所以我希望do.call能帮助我。哈哈,肥茶

>> do.call('rmcorr', args = list(colnames(bland1995)[1], colnames(bland1995)[2], colnames(bland1995)[3], bland1995))
Error in rmcorr("Subject", "pH", "PacO2", list(Subject = c(1L, 1L, 1L,  : 
  'Measure 1' and 'Measure 2' must be numeric
In addition: Warning message:
In rmcorr("Subject", "pH", "PacO2", list(Subject = c(1L, 1L, 1L,  :
  'Subject' coerced into a factor

如何将字符串变量传递给这样的函数?

到目前为止,我只想到了这个丑小鸭:

combs = combn(c(2:(ncol(bland1995))), 2)
for (i in c(1:ncol(combs))){
  j = combs[1,i]
  k = combs[2,i]
  temp = bland1995[,c(colnames(bland1995)[j], colnames(bland1995)[k], 'Subject')]
  colnames(temp) = c('tax1','tax2','Subject')
  s = rmcorr(Subject, tax1, tax2, temp)
  print(x)
}
我希望有一种更简洁的方法

一种方法是使用get:


rmcorr包的最新更新0.3.0现在应该允许这样做。列名仍然可以不带引号地输入,但现在也可以使用字符串动态输入列名。在更新后尝试您的示例:

rmcorr(colnames(bland1995)[1], colnames(bland1995)[2], colnames(bland1995)[3], bland1995)

Repeated measures correlation

r
-0.5067697

degrees of freedom
38

p-value
0.0008471081

95% confidence interval
-0.7112297 -0.223255

有没有办法输入一个变量。。。getcolumn_1。。。让我失望。奇怪的是,只有当我在函数中设置一个字符串变量时,你是什么意思?如果我保存一个
rmcorr(participant = get('Subject'), 
       measure1 = get('PacO2'), 
       measure2 = get('pH'), 
       bland1995)

Repeated measures correlation

r
-0.5067697

degrees of freedom
38

p-value
0.0008471081

95% confidence interval
-0.7112297 -0.223255
rmcorr(colnames(bland1995)[1], colnames(bland1995)[2], colnames(bland1995)[3], bland1995)

Repeated measures correlation

r
-0.5067697

degrees of freedom
38

p-value
0.0008471081

95% confidence interval
-0.7112297 -0.223255