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