1
나는 다음과 같은 데이터 집합을 가지고 있습니다.R - 열 하위 집합 간의 상관 관계 - 현재 행의 참조
name Exp1Res1 Exp1Res2 Exp1Res3 ExpRes1 Exp2Res2 Exp3Res3
[1] ID1 5 7 9 7 9 2
[2] ID2 6 4 2 9 5 1
[3] ID3 4 9 9 9 11 2
각 행에 대해 실험 1과 2 간의 상호 관계를 결정해야합니다. 내 데이터 세트 (FullSet)에 실제로 37 개의 열과 100,000 개의 행이 있으므로 루핑의 원래 솔루션은 너무 느립니다 (아래 참조). 그래서 최적화하고 싶었습니다.
내 원래 솔루션은;
df <- data.frame(matrix(ncol = 5, nrow = dim(FullSet)[1]))
names(df)<-c("ID","pearson","spearman")
for (i in seq(1, dim(FullSet)[1]))
{
pears=cor(as.numeric(t(FullSet[i,2:19])),as.numeric(t(FullSet[i,20:37])), method="pearson")
spear=cor(as.numeric(t(FullSet[i,2:19])),as.numeric(t(FullSet[i,20:37])), method="pearson")
df[i,]<-c(FullSet[i,1],pears,spear)
}
나는 이것이 작동해야한다고 느낍니다.
FullSet$pearson<-cor(as.numeric(t(FullSet[,2:19])),as.numeric(t(FullSet[,20:37])), method="pearson")
하지만 난 어떻게 전치 단지 현재의 행을 참조하는/알고하지 않습니다 -
t(FullSet[,2:19]) - which should read something like t(FullSet[<currow>,2:19]).
도움을 주시면 감사하겠습니다 - 내 접근도 정확한지 모르겠다.
출력 (결과가 정확하지 않습니다 - 예를 들어 만)과 같아야합니다
name Pearson Spearman
[1] ID1 0.8 .75
[2] ID2 0.9 .8
[3] ID3 0.85 .7
나는 이것을 대답으로 표시 했으므로 대안이있다. (단지 녹아서 부드럽게된다.) 그러나 루프 방법보다 빠르다. – statler