[julia-users] Is there a 'smooth.spline' function in Julia as in R? Thank you!

2015-12-10 Thread meibujun
Is there a 'smooth.spline' function in Julia as in R? Thank you!


[julia-users] How to use multiplication or operation of three dimensional matrix, when change R code to Julia code? It is always error.

2015-08-21 Thread meibujun
R code below changed to Julia code. It is always error. I do not know how 
to change R code below to Julia code correctly? Thank you.
#R code
forward - function(G.I,Tr,Pr)
{
n.samp - dim(G.I)[1]
n.mark - dim(G.I)[2]
F - G.I
F[,1,] - sweep(G.I[,1,],2,Pr,*)
for (i in 2:n.mark)
{
 F[,i,] - G.I[,i,]*(F[,i-1,]%*%Tr)
 S - F[,i,1] + F[,i,2] + F[,i,3]
 F[,i,] - sweep(F[,i,],1,S,/)
}
return(F)
}
#error julia code
function forward(GI::Array,Tr::Array,Pr::Array)
nsamp = size(GI,1)
nmark = size(GI,2)
F = GI
F[:,1,:] = broadcast(*,Pr,GI[:,1,:])  #error
for i=2:nmark
  F[:,i,:] = GI[:,i,:].*(F[:,i-1,:]*Tr)  #error
  S = F[:,i,1] + F[:,i,2] + F[:,i,3]  #error
  F[:,i,:] = broadcast(/,S',F[:,i,:])  #error
end
return F
end


[julia-users] How to write zero before decimal in julia, when output result to file? Thank you!

2015-08-11 Thread meibujun
How to write zero before decimal in julia, when output result to file? As 
example, I use writedlm to output 0.324565, and I get .324565. Is there 
any package that can use output format like in c++ or Fortran?


[julia-users] How can I change R code to Julia code. It is always error. Thank you!

2015-08-03 Thread meibujun
julia* GI*
4x8x3 Array{Float64,3}:
[:, :, 1] =
 0.250.250.250.250.125   0.125   0.125   0.25
 0.250.125   0.0625  0.0625  0.125   0.125   0.0625  0.125
 0.0625  0.250.125   0.250.0625  0.0625  0.250.125
 0.125   0.0625  0.250.125   0.125   0.125   0.125   0.25

[:, :, 2] =
 0.25   0.25   0.25   0.25   0.125  0.125  0.125  0.25
 0.25   0.125  0.00.00.125  0.125  0.125  0.125
 0.125  0.25   0.125  0.25   0.125  0.00.25   0.125
 0.125  0.00.25   0.125  0.125  0.125  0.125  0.25

[:, :, 3] =
 0.5   0.5  0.5  0.5  0.0   0.0  0.0   0.5
 0.5   0.0  0.0  0.0  0.0   0.0  0.25  0.0
 0.25  0.5  0.0  0.5  0.25  0.0  0.5   0.0
 0.0   0.0  0.5  0.0  0.0   0.0  0.0   0.5

julia* Tr*
3x3 Array{Float64,2}:
 0.998003 0.00199601  9.98002e-7
 0.000998003  0.9980040.000998003
 9.98002e-7   0.00199601  0.998003

julia *Pr*
1x3 Array{Float64,2}:
 0.25  0.5  0.25

*Julia code:*
 
* function forward(GI::Array,Tr::Array,Pr::Array)*
*nsamp = size(GI,1)*
*nmark = size(GI,2)*
*F = GI*
*F[:,1,:] = broadcast(*,Pr,GI[:,1,:])*
*for i=2:nmark*
*  F[:,i,:] = GI[:,i,:].*(F[:,i-1,:]*Tr)*
*  S = F[:,i,1] + F[:,i,2] + F[:,i,3]  *
*  F[:,i,:] = broadcast(/,S',F[:,i,:])  *
* end*
*return F[:,:,:]*
*  end*

*R code:*

*forward - function(G.I,Tr,Pr)*
*{*
*n.samp - dim(G.I)[1]*
*n.mark - dim(G.I)[2]*
*F - G.I*
*F[,1,] - sweep(G.I[,1,],2,Pr,*)*
*for (i in 2:n.mark)*
*{*
*F[,i,] - G.I[,i,]*(F[,i-1,]%*%Tr)*
*S - F[,i,1] + F[,i,2] + F[,i,3]*
*F[,i,] - sweep(F[,i,],1,S,/)*
*}*
*return(F)*
*}*

when it run, the error:

julia* F[:,1,:] = broadcast(*,Pr,GI[:,1,:])*
ERROR: DimensionMismatch(tried to assign 4x3x3 array to 4x1x3 destination)
 in throw_setindex_mismatch at operators.jl:233 (repeats 2 times)

 
when i=2, error:
julia* F[:,2,:] = GI[:,2,:].*(F[:,2-1,:]*Tr)*
ERROR: `*` has no method matching *(::Array{Float64,3}, ::Array{Float64,2})


julia* F[:,2,:] = GI[:,2,:].*(F[:,2-1,:].*Tr)*
ERROR: arrays could not be broadcast to a common size
 in broadcast_shape at broadcast.jl:40
 in .* at broadcast.jl:278

How can I change the R code to Julia code? Thank you!


[julia-users] How can I change the R code to Julia code. Thank you.

2015-07-30 Thread meibujun
Hello, I do not know how to change list() c(sib1,sib2) and 
a[[v]][inhe[[v]]==par] -
par.al[[par]][inhe[[v]]==par] in R to julia code.
It is error:
ERROR: BoundsError()
 in getindex at array.jl:246 (repeats 2 times)

#R code
n.ped - nrow(sib1$pat)
n.mark - ncol(sib1$pat)
n.al - length(f)
par.al - list()
for(par in 1:4) par.al[[par]] -
matrix(sample(1:n.al,n.ped*n.mark,
replace=TRUE,prob=f),n.ped,n.mark)
a - inhe - c(sib1,sib2)
for (v in 1:4) for (par in 1:4)
a[[v]][inhe[[v]]==par] -
par.al[[par]][inhe[[v]]==par]


###julia code
nped=size(sib1,1)
nmark=size(sib1,2)
nal=size(f,2) 
paral=Dict() 
for (par=1:4)
  paral[[par]]=reshape(wsample([1:nal],vec(f),nped*4*nmark),nped*4,nmark)
end 
#a=inhe=hcat(sib1,sib2,sib3,sib4)
a=inhe=(Sib1,Sib2,Sib3,Sib4)
a=inhe=convert(DataFrame,a) 
println(mbjok)
for (v=1:4) for(par=1:4)
  println(v,par)
  if inhe[[v]]==par
a[v,inhe[v]]=paral[par,inhe[v]]
 end   
end end 



[julia-users] How can I change the R code to Julia code. It is always error.Thank you!

2015-07-30 Thread meibujun
Hello, I do not know how to list() c(sib1,sib2) and 
a[[v]][inhe[[v]]==par] -
par.al[[par]][inhe[[v]]==par] in julia to julia code.
It is error:
ERROR: BoundsError()
 in getindex at array.jl:246 (repeats 2 times)

#R code
n.ped - nrow(sib1$pat)
n.mark - ncol(sib1$pat)
n.al - length(f)
par.al - list()
for(par in 1:4) par.al[[par]] -
matrix(sample(1:n.al,n.ped*n.mark,
replace=TRUE,prob=f),n.ped,n.mark)
a - inhe - c(sib1,sib2)
for (v in 1:4) for (par in 1:4)
a[[v]][inhe[[v]]==par] -
par.al[[par]][inhe[[v]]==par]


###julia code
nped=size(sib1,1)
nmark=size(sib1,2)
nal=size(f,2) 
paral=Dict() 
for (par=1:4)
 paral[[par]]=reshape(wsample([1:nal],vec(f),nped*4*nmark),nped*4,nmark)
end 
#a=inhe=hcat(sib1,sib2,sib3,sib4)
a=inhe=(Sib1,Sib2,Sib3,Sib4)
a=inhe=convert(DataFrame,a) 
println(mbjok)
for (v=1:4) for(par=1:4)
 println(v,par)
 if inhe[[v]]==par
   a[v,inhe[v]]=paral[par,inhe[v]]
 end  
end end 



[julia-users] Re: What reason is different result, when I change R code to Julia code? Thank you!

2015-07-29 Thread meibujun
Perfect. Thank you for your help.

在 2015年7月29日星期三 UTC-5上午12:30:59,Tony Kelman写道:

 The reason is  and | operators are bitwise in Julia, and have a higher 
 precedence than == and !=.

 julia 1 == 1  3 == 3
 false
 julia 1 == 1  3 == 3
 true
 julia (1 == 1)  (3 == 3)
 true
 julia 1  3
 1

 There are a few issues on this, combining the scalar bitwise and 
 array-elementwise meanings into the same  and | operators is not ideal and 
 can lead to confusion here. When in doubt use extra parentheses around 
 conditionals, and use  or || for scalar comparisons.





[julia-users] What reason is different result, when I change R code to Julia code? Thank you!

2015-07-28 Thread meibujun
#R code
f=c(0.5,0.5)
n.al - length(f)
P.1 - P.2 - array(0,dim=rep(n.al,4))
for(a2 in 1:n.al) for(a1 in 1:n.al)
for(a3 in 1:n.al) for(a4 in 1:n.al)
{
if (a1==a3  a2==a4)
{
P.2[a1,a2,a3,a4] - f[a1]*f[a2]
P.1[a1,a2,a3,a4] - f[a1]*f[a2]*(f[a1]+f[a2])/2
}
if (a1==a3  a2!=a4)
{
P.1[a1,a2,a3,a4] - f[a1]*f[a2]*f[a4]/2
}
if (a1!=a3  a2==a4)
{
P.1[a1,a2,a3,a4] - f[a1]*f[a3]*f[a2]/2
}
}
#julia code 
f=Array(Float64,1,2)
f[:,:]=0.5
p1=Array(Float64,nal,nal,nal,nal)
p2=Array(Float64,nal,nal,nal,nal)
p1[:,:,:,:]=0.0
p2[:,:,:,:]=0.0
for (a2 = 1:nal)  for (a1 = 1:nal)
for (a3 = 1:nal)  for (a4 = 1:nal)
   if (a1==a3  a2==a4)
  p2[a1,a2,a3,a4] = f[a1]*f[a2]
  p1[a1,a2,a3,a4] = f[a1]*f[a2]*(f[a1]+f[a2])/2.0
   end
   
   if (a1==a3  a2!=a4)
  p1[a1,a2,a3,a4] = f[a1]*f[a2]*f[a4]/2.0
   end
   
   if (a1!=a3  a2==a4)
  p1[a1,a2,a3,a4] = f[a1]*f[a3]*f[a2]/2.0
   end
end end
end end 

https://lh3.googleusercontent.com/-V-fR1Z3wCS0/VbhSoLSjSjI/AAM/rNp8Wb1-wk8/s1600/Untitled.png

#R code
f=c(0.5,0.5)
n.al - length(f)
P.1 - P.2 - array(0,dim=rep(n.al,4))
for(a2 in 1:n.al) for(a1 in 1:n.al)
for(a3 in 1:n.al) for(a4 in 1:n.al)
{
if (a1==a3  a2==a4)
{
P.2[a1,a2,a3,a4] - f[a1]*f[a2]
P.1[a1,a2,a3,a4] - f[a1]*f[a2]*(f[a1]+f[a2])/2
}
if (a1==a3  a2!=a4)
{
P.1[a1,a2,a3,a4] - f[a1]*f[a2]*f[a4]/2
}
if (a1!=a3  a2==a4)
{
P.1[a1,a2,a3,a4] - f[a1]*f[a3]*f[a2]/2
}
}
#julia code 
f=Array(Float64,1,2)
f[:,:]=0.5
p1=Array(Float64,nal,nal,nal,nal)
p2=Array(Float64,nal,nal,nal,nal)
p1[:,:,:,:]=0.0
p2[:,:,:,:]=0.0
for (a2 = 1:nal)  for (a1 = 1:nal)
for (a3 = 1:nal)  for (a4 = 1:nal)
   if (a1==a3  a2==a4)
  p2[a1,a2,a3,a4] = f[a1]*f[a2]
  p1[a1,a2,a3,a4] = f[a1]*f[a2]*(f[a1]+f[a2])/2.0
   end
   
   if (a1==a3  a2!=a4)
  p1[a1,a2,a3,a4] = f[a1]*f[a2]*f[a4]/2.0
   end
   
   if (a1!=a3  a2==a4)
  p1[a1,a2,a3,a4] = f[a1]*f[a3]*f[a2]/2.0
   end
end end
end end