全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2014-12-2 17:31:58
你可以用source(“C.r”)->x
x
来查看一下x里面有什么。。。然后再做一个循环。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-2 19:15:47
什么也没有啊,是不是我前面的程序写的不多,我运行了什么也没输出来
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-2 19:26:10
你参数估计最后不是有一个值吗?难道没有吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-2 19:33:09
test.r
内容如下:
i<-rnom(1)
x<-matrix(1,30,1)
for(j in 1:30)
{
x[j,1]<-source("test.r")$value"
}
x
x
              [,1]
[1,] -0.149700272
[2,] -0.120855191
[3,] -1.270794900
[4,] -0.202314091
[5,]  1.147683263
[6,] -0.319944397
[7,]  0.051101260
[8,]  0.046986890
[9,] -0.659375530
[10,]  0.933372978
[11,] -1.746467248
[12,]  0.806004986
[13,] -0.579561031
[14,]  1.420858086
[15,]  1.600736200
[16,] -1.267380714
[17,] -1.281226154
[18,]  0.768222495
[19,] -1.062440255
[20,] -0.421094436
[21,]  0.247398030
[22,]  0.146147936
[23,]  0.160183127
[24,] -0.618378692
[25,]  0.757189616
[26,]  0.594755607
[27,]  0.424898135
[28,]  0.400405271
[29,] -0.002198888
[30,]  0.054377998
可以参照一下这个。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-2 19:34:53
test.r的内容就是i<-rnorm(1),产生随机数。。。
然后再循环。。。你看下你的程序吧。。。最后应该有一个值的。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-2 19:56:47
曲散人终 发表于 2014-12-2 19:26
你参数估计最后不是有一个值吗?难道没有吗?
是四个值,可是我就是这么弄的怎么没有呢,你能帮我看下吗?我把程序给你,麻烦你帮我看下前面的该怎么写,谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-2 20:04:13
程序在哪里。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-2 20:33:23
jiachunyang1988 发表于 2014-12-2 19:56
是四个值,可是我就是这么弄的怎么没有呢,你能帮我看下吗?我把程序给你,麻烦你帮我看下前面的该怎么写 ...
我晓得你的意思了,可是我的程序是分为两个部分,第一部分估计得到一个参数的值,在得到第一个估计值的基础上然后第二部分得到另外三个参数的估计值,我刚刚试了下,输出的结果是一个空矩阵,这是什么原因呢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-2 20:50:54
test.r
内容为
i<-rnorm(1)
j<-rnorm(1)
k<-rnorm(1)
l<-rnorm(1)
x<-c(i,j,k,l)
data<-matrix(30,30,4)
for(fi in 1:30)
{
data[i,]<-source("test.r")
}
data
data
               [,1]        [,2]        [,3]        [,4]
[1,]  0.4689560943  0.41021918 -1.47245433 -0.83379813
[2,] -0.1468344631 -0.04029691  2.15698041 -0.29293431
[3,]  0.6318374815  0.86381940  0.08801037 -1.46665046
[4,] -0.0687576799  0.35173895 -0.51532110 -0.55512853
[5,] -0.7810682770  0.17337073 -1.38850202 -0.97906878
[6,]  0.7187910668 -0.89979922  0.84536582 -0.32634659
[7,] -0.8897264650 -0.91103386 -0.39716780  0.02785898
[8,]  1.8046113412  0.16164153  0.75080871 -0.77221783
[9,]  1.2794622372  0.68440660  0.01725624  0.14091887
[10,]  0.1054056792  0.68079928  1.58352235 -0.72553600
[11,]  1.9858083714 -0.65227872 -0.86700426  1.64785058
[12,] -1.2304023646 -0.74228038 -0.84655171  0.13221950
[13,] -0.0753357468 -1.17368119 -0.16568548 -1.36263117
[14,]  0.4442810319  1.95460980 -0.07832366 -0.86417766
[15,]  0.5196975400 -0.21270824  1.30647029  1.19599369
[16,] -0.4863672203  0.87120992 -0.65673603 -1.15469391
[17,] -0.9540178423 -0.55430719  1.08494383  0.03339504
[18,]  1.9429974087  0.40530120  0.16319767  2.81664497
[19,] -1.7250451480 -0.73982729  0.30675100  2.38030097
[20,]  0.0130614280 -0.94566631 -0.13124599  1.17081426
[21,]  0.6761404384 -0.82220129 -1.59183754  0.58256108
[22,] -1.0370987660 -0.30434138  1.67779389  0.33131806
[23,]  0.2869559320  0.16351840 -0.45566760  0.43295978
[24,] -0.0005876634 -1.13741380 -0.85608562  0.27466919
[25,] -1.1781133349 -1.31198179  1.84919456  0.62323588
[26,] -0.8381296321 -0.14322947  0.14662975 -0.55472101
[27,] -0.0176577131  0.61830364  0.95733544  0.06823911
[28,]  0.2574328924 -1.40240246  0.37088190 -2.18087317
[29,] -0.0434359410  0.18470725 -1.01401217  0.12076647
[30,]  0.1793901250  0.67198422  2.37685099 -1.13329723
这样可以了吧。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-2 20:51:49
还是要加上$value在source("test.r")后面。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-2 22:00:04
jiachunyang1988 发表于 2014-12-2 20:33
我晓得你的意思了,可是我的程序是分为两个部分,第一部分估计得到一个参数的值,在得到第一个估计值的基 ...
不好意思啊,麻烦你帮我看看
###生成数据

error=c()
sigma=1
error=rnorm(20, mean=0, sd=sigma)
error

beta= c()
r0=1
r1=0.4
alpha=1
T=20

beta[1]=error[1]
for (t in 2:length(error)) {
beta[t]=r0+r1*beta[t-1]+error[t]
}
beta=ts(beta)
beta  


X=matrix(runif(600,0,1),nrow=20)
X

Z=matrix( )
Z=diag(beta)%*%X
Z  

A=matrix(c(alpha),nrow=20,ncol=30)+Z
A

P=exp(A)/(1+exp(A))
P

W=matrix(runif(600,0,1),20,30)  
Y=1*(W<P)
Y   
#####################################################################

####给alpha和beta一个初值

a=matrix(0,20,2)
   for(t in 1:T){
   b=glm(Y[t,]~X[t,],family=binomial)
   a[t,]=b$coef
}
a
alpha1=mean(a[,1])
alpha1
beta1=a[,2]
beta1   
###############################################################################

###牛顿法得到非线性方程组的解 r0,r1,sigma

Newtons=function(fun,phi, ep=1e-5, it_max=100){
      
   

   index=0; k=1

   while (k<=it_max){
     
      phi1=phi; obj=fun(phi);

      phi=phi-solve(obj$J, obj$f);

      norm=sqrt((phi-phi1)%*%(phi-phi1))

      if(norm<ep){

         index=1; break

      }
      k<-k+1

   }

   obj=fun(phi);

   list(root=phi, it=k, index=index, FunVal=obj$f)

}

t=2:T

funs=function(phi){
   
   f=c((1+phi[3])*(beta1[1]-phi[1]/(1-phi[3]))/phi[2]^2+(sum(beta1[t]-phi[1]-phi[3]*beta1[t-1]))/phi[2]^2,
   
      -T/phi[2]+(sum((beta1[t]-phi[1]-phi[3]*beta1[t-1])^2))/phi[2]^3+((1-phi[3]^2)*(beta1[1]-phi[1]/(1-phi[3]))^2)/phi[2]^3,
     
      - phi[3]/(1-phi[3]^2)+phi[3]*((beta1[1]-phi[1]/(1-phi[3]))^2)/phi[2]^2+
      
       (sum((beta1[t]-phi[1]-phi[3]*beta1[t-1])*beta1[t-1]))/phi[2]^2+phi[1]*(1+phi[3])*(beta1[1]-phi[1]/(1-phi[3]))/(phi[2]^2*(1-phi[3])))


     J=matrix(c(-(1+phi[3])/(phi[2]^2*(1-phi[3]))-(T-1)/phi[2]^2,
           
            -2*(1+phi[3])*(beta1[1]-phi[1]/(1-phi[3]))/phi[2]^3-2*(sum(beta1[t]-phi[1]-phi[3]*beta1[t-1]))/phi[2]^3,
           
            (beta1[1]*(1-phi[3])^2-2*phi[1])/(phi[2]^2*(1-phi[3])^2)-(sum(beta1[t-1]))/phi[2]^2,
           
            (-2/phi[2]^3)*((sum(beta1[t]-phi[1]-phi[3]*beta1[t-1]))+(1+phi[3])*(beta1[1]-phi[1]/(1-phi[3]))),
            
            T/phi[2]^2-(3/phi[2]^4)*((sum((beta1[t]-phi[1]-phi[3]*beta1[t-1])^2))+(1-phi[3]^2)*(beta1[1]-phi[1]/(1-phi[3]))^2),           
            
            -2*(sum((beta1[t]-phi[1]-phi[3]*beta1[t-1])*beta1[t-1]))/phi[2]^3-2*phi[3]*(beta1[1]-(phi[1]/(1-phi[3]))^2)/phi[2]^3-
            
            2*phi[1]*(1+phi[3])*(beta1[1]-(phi[1]/(1-phi[3])))/(phi[2]^3*(1-phi[3])),
            
            (-2*phi[3]*(beta1[1]-phi[1]/(1-phi[3])))/(phi[2]^2*(1-phi[3]))-(sum(beta1[t-1]))/phi[2]^2+
               
                 (1+phi[3])*(beta1[1]-2*phi[1]/(1-phi[3]))/(phi[2]^2*(1-phi[3])),           
         
             (-2*phi[3]/phi[2]^3)*(beta1[1]-(phi[1]/(1-phi[3]))^2)-2*(sum((beta1[t]-phi[1]-phi[3]*beta1[t-1])*beta1[t-1]))/phi[2]^3-

             (2*phi[1]*(1+phi[3])*(beta1[1]-(phi[1]/(1-phi[3]))))/(phi[2]^3*(1-phi[3])),
               
            -(1+phi[3]^2)/(1-phi[3]^2)^2+(beta1[1]-phi[1]/(1-phi[3]))^2/phi[2]^2-2*phi[1]*phi[3]*(beta1[1]-phi[1]/(1-phi[3]))/(phi[2]^2*(1-phi[3])^2)-
                 
                 (sum(beta1[t-1]^2))/phi[2]^2+(2*phi[1]*beta1[1]-phi[1]^2-((2*phi[1]^2*(1+phi[3]))/(1-phi[3])))/(phi[2]^2*(1-phi[3])^2)),3,3,byrow=T)
   

      list(f=f,J=J)
   }

Newtons(funs,c(1,1,0.4))

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-2 22:29:43
能把你的程序贴好点吗。。。看得实在是头痛。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-2 22:56:32
roota<-matrix(30,30,3)
inta<-matrix(30,30,1)
indexa<-matrix(30,30,1)
FunVala<-matrix(30,30,3)
for(fi in 1:30)
{
source("test.r")$value->result
result$root->roota[fi,]
result$it->inta[fi,]
result$index->indexa[fi,]
result$FunVal->FunVala[fi,]
}
但是会有警告。。。你这不只四个值吧。。。是四个参数,每个参数的值不一样。。。index好像都是1。。。
resultreal<-cbind(roota,inta,indexa,FunVala)
colnames(resultreal)<-c(paste("root",1:3,sep="")"it","index",paste("FunVal",1:3,sep=""))
resultreal
              root1        root2        root3 it index       FunVal1
[1,]  2.932705e+00     4.443398 -0.044705572 11     1  1.942890e-16
[2,]  1.763472e+00     2.566635  0.131168839  9     1  2.220446e-16
[3,]  1.446558e+00     2.795726  0.072901617 11     1  7.993606e-14
[4,]  3.105975e+00     4.483115  0.111386883 11     1  6.938894e-16
[5,]  2.797802e+00     4.729219  0.161051839 11     1  3.042011e-14
[6,]  2.474712e+00     1.854530 -0.068048059  8     1 -6.800116e-16
[7,]  5.876404e+00     8.698359 -0.218396051 14     1  1.526557e-16
[8,]  3.394085e+00     5.108472 -0.170423350 11     1  6.861178e-14
[9,]  1.570930e+00     2.308090  0.221471928  9     1  6.983303e-14
[10,]  3.167952e+00     7.189025  0.010838923 12     1  2.484124e-15
[11,]  2.930424e+00     3.320860  0.115998544 10     1  7.771561e-16
[12,]  1.380893e+00     2.895080  0.335350108  9     1  3.591571e-14
[13,]  1.798078e+00     1.742767 -0.252371537  9     1  1.809664e-14
[14,]  1.393069e+00     4.084480  0.228269922 11     1  1.360023e-14
[15,]  1.613741e+00     3.408410  0.282311045 10     1 -1.804112e-16
[16,]  4.955300e+01   195.527915 -0.050350331 24     1 -8.673617e-19
[17,]  2.536230e+00     5.259663  0.111575643 11     1  3.143319e-15
[18,]  1.653942e+02   675.067117 -0.050933049 29     1  1.084202e-18
[19,]  3.390971e+00     5.246574  0.226605727 12     1 -1.249001e-16
[20,]  3.618624e+00     3.613593 -0.257438210 11     1 -8.326673e-17
[21,] -5.753179e-03     2.416770  0.362227406  9     1 -4.996004e-16
[22,]  2.961887e+00     2.267074 -0.281913297 10     1  1.465494e-14
[23,]  2.782912e+00     2.137948 -0.177550800  9     1  1.029177e-13
[24,]  1.994353e+00     3.286657  0.002816165  9     1  5.447864e-13
[25,]  1.812346e+00     2.191288  0.008411907  8     1  2.220446e-16
[26,]  1.898667e+00     3.705085 -0.083605849 10     1  2.386980e-14
[27,]  4.262193e-01     1.901698  0.438736775  8     1  5.329071e-15
[28,]  5.100577e+03 20973.343390 -0.052902398 41     1 -2.202286e-20
[29,]  3.388581e+01   127.349666 -0.039546251 23     1 -2.168404e-19
[30,]  2.954689e+00     5.778763 -0.062099543 12     1 -1.387779e-17
           FunVal2       FunVal3
[1,] 1.527827e-10  2.085973e-10
[2,] 8.094432e-09 -2.761690e-08
[3,] 4.388331e-07 -6.477192e-07
[4,] 1.003654e-08 -5.862582e-08
[5,] 1.103887e-07 -6.031496e-07
[6,] 1.185892e-09  2.608705e-09
[7,] 7.098080e-10  8.094551e-09
[8,] 8.393417e-08  1.147064e-07
[9,] 4.203914e-07 -5.463229e-07
[10,] 2.480749e-10 -2.823004e-09
[11,] 5.461260e-08 -2.170808e-07
[12,] 1.697435e-07 -4.729970e-07
[13,] 5.115933e-07  7.090607e-07
[14,] 7.828493e-08 -2.025988e-07
[15,] 5.542269e-10 -2.131502e-09
[16,] 6.956582e-13  2.140046e-11
[17,] 5.927087e-09 -7.292370e-09
[18,] 5.340644e-16  2.551084e-13
[19,] 2.963673e-09 -1.519648e-08
[20,] 4.210173e-09  1.527459e-08
[21,] 9.903663e-09 -3.222366e-08
[22,] 5.359805e-07  1.151900e-06
[23,] 6.872364e-07  5.405425e-07
[24,] 4.830573e-09 -3.470433e-08
[25,] 1.272426e-09 -8.095314e-10
[26,] 7.415512e-08  1.332113e-07
[27,] 2.646835e-08 -6.673648e-08
[28,] 9.949249e-18  2.004785e-13
[29,] 1.783610e-14  5.994094e-13
[30,] 6.892791e-11  1.572562e-10
这样解决你的问题了?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-2 22:59:11
大致就是这样。。。不过我没看懂你的程序是想干嘛。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-3 10:47:14
曲散人终 发表于 2014-12-2 22:56
rootaindexa[fi,]
result$FunVal->FunVala[fi,]
}
谢谢,能加你扣扣吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-3 10:53:52
jiachunyang1988 发表于 2014-12-3 10:47
谢谢,能加你扣扣吗?
我明天考试了,840212114,没什么大问题的话就明天考完再说吧。。。你都能写出这么繁琐的程序,怎么会解决不了这么一个小问题。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-3 12:31:08
那就将replicate中的表达式换成你自己编的函数,在函数中设好需要的参数。
你难道没用过lapply吗,跟它一样的道理。
还需要我讲得更清楚点吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-7-24 10:39:04
曲散人终 发表于 2014-12-1 22:05
setwd()设置工作目录,你可以用getwd()来查看当前工作目录,然后setwd()到你r程序所在目录,接着用这个循环 ...
大神 能否解答下这个source("youfile.r")$value中 value 指的是代码最后输出的值,还是其他值呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-7-24 11:18:18
zhangbo19h 发表于 2015-7-24 10:39
大神 能否解答下这个source("youfile.r")$value中 value 指的是代码最后输出的值,还是其他值呢?
你可以用source(“yourfile.r")->a来看看具体值,不同程序不一样。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-7-26 18:23:35
曲散人终 发表于 2015-7-24 11:18
你可以用source(“yourfile.r")->a来看看具体值,不同程序不一样。。。
我知道不同的程序不一样。source()是读取R代码的,你在给出的解答程序里,是用$value来引用了一个值,我只是想问一下,你这个value具体指的是哪个值?是程序里的最终结果,还是什么。谢谢你。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-7-28 13:41:03
zhangbo19h 发表于 2015-7-26 18:23
我知道不同的程序不一样。source()是读取R代码的,你在给出的解答程序里,是用$value来引用了一个值,我 ...
好像是程序里的最终结果,就是你程序运行后最后显示在屏幕上的结果。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-8-8 10:26:06
曲散人终 发表于 2015-7-28 13:41
好像是程序里的最终结果,就是你程序运行后最后显示在屏幕上的结果。。。
哦了 谢谢大神。敢冒昧的问下,大神是从哪本书看到的这样的code?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-8-9 16:49:10
zhangbo19h 发表于 2015-8-8 10:26
哦了 谢谢大神。敢冒昧的问下,大神是从哪本书看到的这样的code?
。。。我根据source("*.r")这个命令想出来的。。。程序员的直觉告诉我这样是可以的。。。没有哪本书。。。感觉自己多思考就好了。。。大家共同学习,一起进步。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-8-11 11:25:26
曲散人终 发表于 2015-8-9 16:49
。。。我根据source("*.r")这个命令想出来的。。。程序员的直觉告诉我这样是可以的。。。没有哪本书。。。 ...
wow 好厉害!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-5-9 10:34:51
zhangbo19h 发表于 2015-8-11 11:25
wow 好厉害!
楼主你好,我现在也遇到了跟你一样的问题,我也是需要把整个程序循环15次,但是你们讨论的这个我没看懂。我可不可以加你QQ问你。我QQ是1064197956
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-10-28 17:46:03
曲散人终 发表于 2014-12-1 22:05
setwd()设置工作目录,你可以用getwd()来查看当前工作目录,然后setwd()到你r程序所在目录,接着用这个循环 ...
这个思想真好 学到了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-10-8 20:46:03
qoiqpwqr 发表于 2014-12-1 21:13
假设你有5个参数
感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群