전에 R의 상관 알고리즘을 다뤘지만 현재 코드에서 어떤 일이 일어나는지 확신 할 수 없습니다.R의 상관 관계; 숫자
제 입력 데이터는 두 개의 .csv 파일입니다. 첫 번째 열은 하나의 열만 있고 data.frame으로 강요했습니다. 그것은 (내 데이터는 매우 오랜 시간이 시리즈, 그래서 나는 첫 번째 10 개의 데이터 포인트를 보여주는거야)) 다음과 같습니다
trends
V1 0.2701541
V2 2.00532
V3 1.79548
V4 0.2549123
V5 0.2124736
V6 -1.132594
V7 -0.711875
V8 -1.577067
V9 -0.5320426
V10 1.325005
내 다른 파일에 여러 열이를 다음과 같이 보입니다 :
X13_EVI X14_EVI X15_EVI X18_EVI
1 1.0492437 0.54155557 -0.58480284 -3.47111922
2 1.7274555 1.46141010 0.79416226 1.04050086
3 1.7274555 1.46141010 0.48772557 1.17721662
4 -0.1941446 -0.14833532 -0.12514781 0.22020630
5 -0.1941446 -0.14833532 -0.12514781 0.22020630
6 -0.5332505 -0.60826258 -0.73802119 -0.73680402
7 -0.4202152 -0.49328077 -0.12514781 -0.32665674
8 -0.9853917 -1.29815348 -1.04445787 -0.73680402
9 -0.3071799 -0.03335350 0.18128888 -0.46337250
10 0.5971025 1.00148284 1.10059895 0.63035358
내가
corr=cor(trends, all.obs)
을 할 때
나는 오류 메시지를받을
Error in cor(trends, all.obs) : 'x' must be numeric
이 문제를 해결하기 전에 나는 기억할 수 없으며 그 원인을 파악할 수 없습니다. 과거에는 항상 관찰 된 시계열 (all.obs의 열)과 추세 (이 경우 1 개의 추세) 간의 상관 관계를 계산할 수있었습니다. 그래서 어쩌면 내가 뭔가를 아주 누락, 나는 생각이 함께 일부터
> trends=as.numeric(trends)
Error: (list) object cannot be coerced to type 'double'
그것은 오랜만이야 얻었 기 때문에 나는 또한
> typeof(all.obs)
[1] "list"
> typeof(trends)
[1] "list"
했다
> is.numeric(trends)
[1] FALSE
> is.numeric(all.obs)
[1] FALSE
> is.data.frame(all.obs)
[1] TRUE
> is.data.frame(trends)
[1] TRUE
을 확인했습니다 분명한?
목록을 벡터로 만들려면 'unlist'를 시도하십시오. 숫자가 아닌 경우 숫자로 변환하십시오. –
'cor (cbind (trends, all.obs))'는'trends'의 한 열과'all.obs'의 모든 열을 포함하는 상관 행렬을 제공합니다. 그것은 가장 간단한 해결 방법 일 수 있습니다. – thelatemail