感谢@Dirk Eddelbuettel、@Joshua Ulrich、@RHertel 的有用回复。
我尝试了一堆东西,其中一些没有完全通过。我不确定哪一个有效。但这就是我所做的:
curl -O http://r.research.att.com/libs/gfortran-4.8.2-darwin13.tar.bz2
sudo tar fvxz gfortran-4.8.2-darwin13.tar.bz2 -C /
不知何故,它似乎工作。但显然我不知道究竟是哪个帮助我成功install.packages
完成type="source"
了PerformanceAnalytics
包装。此外,它产生了很多警告,如下所示:
> install.packages("/Users/Natsume/Downloads/R packages/PerformanceAnalytics_1.4.4000.tar.gz", repos = NULL, type="source")
* installing *source* package ‘PerformanceAnalytics’ ...
** libs
gfortran-4.8 -fPIC -Wall -g -O2 -c momentF.f90 -o momentF.o
gfortran-4.8: warning: couldn’t understand kern.osversion ‘15.4.0
momentF.f90:2.1:
subroutine asVecCov1(ia, n, oa)
1
Warning: Nonconforming tab character at (1)
momentF.f90:8.1:
implicit none
1
Warning: Nonconforming tab character at (1)
momentF.f90:11.1:
integer :: n
1
Warning: Nonconforming tab character at (1)
momentF.f90:12.1:
double precision :: ia(n), oa(n*n)
1
Warning: Nonconforming tab character at (1)
momentF.f90:15.1:
integer :: i, j, ii
1
Warning: Nonconforming tab character at (1)
momentF.f90:20.1:
ii = 1
1
Warning: Nonconforming tab character at (1)
momentF.f90:21.1:
do j=1,n
1
Warning: Nonconforming tab character at (1)
momentF.f90:22.1:
do i=1,n
1
Warning: Nonconforming tab character at (1)
momentF.f90:23.1:
oa(ii) = ia(i) * ia(j)
1
Warning: Nonconforming tab character at (1)
momentF.f90:24.1:
ii = ii + 1
1
Warning: Nonconforming tab character at (1)
momentF.f90:25.1:
end do
1
Warning: Nonconforming tab character at (1)
momentF.f90:26.1:
end do
1
Warning: Nonconforming tab character at (1)
momentF.f90:28.1:
end subroutine asVecCov1
1
Warning: Nonconforming tab character at (1)
momentF.f90:30.1:
subroutine asVec(im, nr, nc, oa)
1
Warning: Nonconforming tab character at (1)
momentF.f90:38.1:
implicit none
1
Warning: Nonconforming tab character at (1)
momentF.f90:41.1:
integer :: nr, nc
1
Warning: Nonconforming tab character at (1)
momentF.f90:42.1:
double precision :: im(nr,nc), oa(nr * nc)
1
Warning: Nonconforming tab character at (1)
momentF.f90:45.1:
integer :: i, j
1
Warning: Nonconforming tab character at (1)
momentF.f90:50.1:
do j=1,nc
1
Warning: Nonconforming tab character at (1)
momentF.f90:51.1:
do i=1,nr
1
Warning: Nonconforming tab character at (1)
momentF.f90:52.1:
oa(i + (j-1) * nr) = im(i,j)
1
Warning: Nonconforming tab character at (1)
momentF.f90:53.1:
end do
1
Warning: Nonconforming tab character at (1)
momentF.f90:54.1:
end do
1
Warning: Nonconforming tab character at (1)
momentF.f90:56.1:
end subroutine asVec
1
Warning: Nonconforming tab character at (1)
momentF.f90:58.1:
subroutine M3(x, mu, nr, nc, C, om)
1
Warning: Nonconforming tab character at (1)
momentF.f90:68.1:
implicit none
1
Warning: Nonconforming tab character at (1)
momentF.f90:71.1:
integer :: nr, nc
1
Warning: Nonconforming tab character at (1)
momentF.f90:72.1:
double precision :: x(nr, nc), mu(nc), om(nc, nc*nc), C(nc*nc, nc)
1
Warning: Nonconforming tab character at (1)
momentF.f90:75.1:
integer :: i
1
Warning: Nonconforming tab character at (1)
momentF.f90:76.1:
double precision :: alpha, beta
1
Warning: Nonconforming tab character at (1)
momentF.f90:77.1:
double precision :: centret(nc), tccr(nc * nc)
1
Warning: Nonconforming tab character at (1)
momentF.f90:79.1:
alpha = 1.d0
1
Warning: Nonconforming tab character at (1)
momentF.f90:80.1:
beta = 1.d0
1
Warning: Nonconforming tab character at (1)
momentF.f90:82.1:
do i=1,nr
1
Warning: Nonconforming tab character at (1)
momentF.f90:83.1:
centret = x(i,:) - mu
1
Warning: Nonconforming tab character at (1)
momentF.f90:86.1:
call asVecCov1(centret, nc, tccr)
1
Warning: Nonconforming tab character at (1)
momentF.f90:94.1:
call DGEMM('N', 'N', nc*nc, nc, 1, alpha, tccr, nc*nc, centret, 1, beta, C, n
1
Warning: Nonconforming tab character at (1)
momentF.f90:95.1:
end do
1
Warning: Nonconforming tab character at (1)
momentF.f90:97.1:
om = transpose(C) / DBLE(nr)
1
Warning: Nonconforming tab character at (1)
momentF.f90:120.1:
end subroutine M3
1
Warning: Nonconforming tab character at (1)
momentF.f90:122.1:
subroutine M4(x, mu, nr, nc, D, om)
1
Warning: Nonconforming tab character at (1)
momentF.f90:132.1:
implicit none
1
Warning: Nonconforming tab character at (1)
momentF.f90:135.1:
integer :: nr, nc
1
Warning: Nonconforming tab character at (1)
momentF.f90:136.1:
double precision :: x(nr, nc), mu(nc), om(nc, nc*nc*nc), D(nc*nc*nc, nc)
1
Warning: Nonconforming tab character at (1)
momentF.f90:139.1:
integer :: i
1
Warning: Nonconforming tab character at (1)
momentF.f90:140.1:
double precision :: alpha, beta, beta1
1
Warning: Nonconforming tab character at (1)
momentF.f90:141.1:
double precision :: centret(nc), tccr(nc * nc), tccr2(nc * nc * nc), C(nc*nc,
1
Warning: Nonconforming tab character at (1)
momentF.f90:143.1:
alpha = 1.d0
1
Warning: Nonconforming tab character at (1)
momentF.f90:144.1:
beta = 0.d0
1
Warning: Nonconforming tab character at (1)
momentF.f90:145.1:
beta1 = 1.d0
1
Warning: Nonconforming tab character at (1)
momentF.f90:147.1:
do i=1,nr
1
Warning: Nonconforming tab character at (1)
momentF.f90:148.1:
centret = x(i,:) - mu
1
Warning: Nonconforming tab character at (1)
momentF.f90:152.1:
call asVecCov1(centret, nc, tccr)
1
Warning: Nonconforming tab character at (1)
momentF.f90:159.1:
call asVec(C, nc*nc, nc, tccr2)
1
Warning: Nonconforming tab character at (1)
momentF.f90:162.1:
call DGEMM('N', 'N', nc*nc*nc, nc, 1, alpha, tccr2, nc*nc*nc, centret, 1, bet
1
Warning: Nonconforming tab character at (1)
momentF.f90:163.1:
end do
1
Warning: Nonconforming tab character at (1)
momentF.f90:165.1:
om = transpose(D) / DBLE(nr)
1
Warning: Nonconforming tab character at (1)
momentF.f90:188.1:
end subroutine M4
1
Warning: Nonconforming tab character at (1)
gfortran-4.8 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o PerformanceAnalytics.so momentF.o -L/Library/Frameworks/R.framework/Resources/lib -lRlapack -L/Library/Frameworks/R.framework/Resources/lib -lRblas -L/usr/local/lib/gcc/x86_64-apple-darwin13.0.0/4.8.2 -lgfortran -lquadmath -lm -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
gfortran-4.8: warning: couldn’t understand kern.osversion ‘15.4.0
ld: warning: object file (momentF.o) was built for newer OSX version (10.11) than being linked (10.4)
installing to /Library/Frameworks/R.framework/Versions/3.2/Resources/library/PerformanceAnalytics/libs
** R
** data
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
* DONE (PerformanceAnalytics)