我读了一些关于它的帖子,但仍然没有得到答案。我很遗憾可能很简单。我有功能
GoodmanKruskalGamma(mydata$item1, mydata$totalscore, conf.level=0.95)
但是我想将它自动应用到我的数据框中的其他列,而不是手动为每个项目执行
GoodmanKruskalGamma(mydata$item1, mydata$totalscore, conf.level=0.95)
GoodmanKruskalGamma(mydata$item2, mydata$totalscore, conf.level=0.95)
GoodmanKruskalGamma(mydata$item3, mydata$totalscore, conf.level=0.95)
有人可以帮助我创建一个循环吗?还有另一种有用的方法吗?
谢谢!
*已解决*
我设法使用此代码来查找解决方案
install.packages("magicfor") #Install Magicfor
library(magicfor) #Load Magicfor package
magic_for(print, silent = TRUE) #Load Magic for
for(coln in c(2:41)) {
print(GoodmanKruskalGamma(newdata[,coln], newdata$totalscore, conf.level=0.95))
} #Perform loop
results <- magic_result_as_dataframe() #Storage results
results #Show results
*其他问题*
我怎么能用代码来建立列对之间的相关性?例如,在一个项目和它的restscore之间?
GoodmanKruskalGamma(mydata$item1, mydata$restscore1, conf.level=0.95)
GoodmanKruskalGamma(mydata$item2, mydata$restscore2, conf.level=0.95)
我尝试了这个但是没有用
for(coln in c(2:41)) {
for(coln2 in c(48:87)) {
print(GoodmanKruskalGamma(newdata[,coln], newdata[,coln2], conf.level=NA))}
} #Perform loop
编辑:我为那些感兴趣的人找到了第二个解决方案
### Calculate Kruskal Gamma between Item and Restscore ###
results3 <- capture.output(
for(coln in c(2:41)) {
for(restn in c(43:82)) {
if(coln + 41 == restn){
print(GoodmanKruskalGamma(newdata[,coln], newdata[,restn], conf.level=NA))
}else{}
}
})
答案 0 :(得分:0)
for(coln in c('item1', 'item2', 'item3')) {
GoodmanKruskalGamma(mydata[,coln], mydata$totalscore, conf.level=0.95)
}
应该做的伎俩