精华内容
下载资源
问答
  • option_price for(i in 1:n){ option_price [i] U = 0.9600,L = 0.9200,sigma = 0.06,T = t [i] /(60 * 24 * 365), r = 0.0025,b = -0.0250)} a b option_price_transformed =(option_price - a)* ...

    原文链接:

    http://tecdat.cn/?p=4051​tecdat.cn

    Double-no-touch(DNT)选项是二元期权,在到期时支付固定金额的现金。我们将展示两种不同的方式来定价包含两种不同定价方法的DNT。

    af5082a49f20020be5a01b06ab47ce3a.png

    1f4879317aec785f1b42e531d543ac78.gif

    ​​

    首先,我们将尝试使用正常参数,看看收敛速度有多快:

    print(dnt1(100,10,120,80,0.1,0.25,0.05,0.03,20,TRUE))

    以下屏幕截图显示了上述代码的结果:

    b3c09afd934c0d55c6713471974bb361.png

    另一个问题是,如果我们选择极高的ü或极低的L,则会出现计算错误,然而,类似于波动性的问题。如果我们将ü更高或更低,则DNT的价格应该增加。

    以下代码绘制了底层价格的图表:

    for(i in 1:2000){ y [i] z [i] } matplot(x,cbind(y,z),type =“l”,lwd = 2,lty = 1, main =“ “,cex.main = 0.8,xlab =” “)

    以下输出是上述代码的结果:

    e9f9a54a7e8c70cc5bcf5304ad6f3f02.png

    可以清楚地看到,即使波动率的微小变化也会对DNT的价格产生巨大影响。

    大多数最终用户认为最大的风险是现场接近触发点。这是因为最终用户真的以二进制方式考虑二元期权。

    我们可以使用GetGreeks函数来估计维加,γ,δ和有峰。
    对于γ,我们可以通过以下方式使用GetGreeks函数:

    GetGreeks all_args1 all_args1 [[arg]] all_args2 [[arg]] (do.call(FUN,all_args1) - do.call(FUN,all_args2))/(2 * epsilon) } Gamma arg1 arg2 arg3 y1 y2 (y1 - y2 )/(2 * epsilon) } delta (i in 1:200){ delta [i] x [i],1000000,0.96,0.92,0.06,0.5,0.02 ,-0.02)vega [i] x [i],1000000,0.96,0.92,0.06,0.5,0.0025,-0.025)theta [i] x [i],1000000,0.96,0.92,0.06,0.5,0.0025, - 0.025)gamma [i] } windows()plot(x,vega,type =“l”,xlab =“S”,ylab =“”,main =“Vega”)

    以下图表是上述代码的结果:

    15f15787251721b02802660ab544f787.png

    在看了价值图表之后,DNT的增量也非常接近直觉; 如果我们接近更高的障碍,我们的增量变为负值,如果我们接近较低的障碍,增量变为正值如下:

    windows() plot(x,delta,type =“l”,xlab =“S”,ylab =“”,main =“Delta”)

    对于动态套期保值者来说,这意味着在价格上涨后买入一些澳元兑美元,并在价格下跌后卖出相同的金额。

    可以通过如下的伽玛来描述增量的变化:

    windows() plot(x,gamma,type =“l”,xlab =“S”,ylab =“”,main =“Gamma”)

    负伽玛意味着如果该点上升,我们的增量正在减少,但如果该点下降,我们的增量增加。

    windows() plot(x,theta,type =“l”,xlab =“S”,ylab =“”,main =“Theta”)

    我们之前已经介绍了布莱克 - 斯科尔斯表面; 现在,我们可以详细介绍一下。代码如下:

    BS_surf n k m for(i in 1:n){ for(j in 1:k){ l m [i,j] } } persp3D(z = m,xlab =“underlying”,ylab =“Time”, } 上面的代码给出了以下输出:

    a3311467dba50d3ab3c130af38f92eef.png

    Double-no-touch 模拟

    DNT价格在2014年第二季度的变化情况如何?

    option_price for(i in 1:n){ option_price [i] U = 0.9600,L = 0.9200,sigma = 0.06,T = t [i] /(60 * 24 * 365), r = 0.0025,b = -0.0250)} a b option_price_transformed =(option_price - a)* 0.03 /(b - a)+ 0.92 par(mar = c(6,3,3,5 ))matplot(cbind(underlying,option_price_transformed),type = “l”,

    以下是上述代码的输出:

    8d55d8595fbd8958d982dabe00c36317.png

    DNT的价格在右轴显示为红色(除以1000),实际的AUDUSD价格在左轴显示为灰色。

    dnt1(0.9203,1000000,0.9600,0.9200,0.06,59 / 365,0.0025,-0.025) [1] 5302.213

    比较此5302美元至最初的48564美元期权价格

    在下面的模拟中,我们将展示一些不同的轨迹所有这些都是从与4月1日黎明时相同的0.9266澳元兑美元现货价格开始,我们将看到其中有多少人保持在(0.9200。0.9600)区间内,为简单起见,我们将使用与我们用于定价DNT相同的6%波动率来模拟几何布朗运动:

    library(matrixStats) DNT_sim L = 0.92,N = 5){ option_price matplot(t,option_price,type =“l”,main =“DNT price”, xlab =“”,ylab =“”)} set.seed(214) system.time(DNT_sim())

    以下是上述代码的输出:

    8361d336e021a7077c5e19c150e68cf8.png

    02e41953f7ac196b777b4cb5ae097c58.png

    还有问题吗?联系我们

    展开全文
  • option_price for(i in 1:n){ option_price [i] U = 0.9600,L = 0.9200,sigma = 0.06,T = t [i] /(60 * 24 * 365), r = 0.0025,b = -0.0250)} a b option_price_transformed =(option_price - a)* ...

    原文链接:http://tecdat.cn/?p=4051

    Double-no-touch(DNT)选项是二元期权,在到期时支付固定金额的现金。我们将展示两种不同的方式来定价包含两种不同定价方法的DNT。

     

     首先,我们将尝试使用正常参数,看看收敛速度有多快:

    print(dnt1(100,10,120,80,0.1,0.25,0.05,0.03,20,TRUE))
    
     
    
    以下屏幕截图显示了上述代码的结果:

    另一个问题是,如果我们选择极高的ü或极低的L,则会出现计算错误,然而,类似于波动性的问题。如果我们将ü更高或更低,则DNT的价格应该增加。

    以下代码绘制了底层价格的图表:

     
     for(i in 1:2000){ 
       y [i] 
        z [i] 
     } 
    matplot(x,cbind(y,z),type =“l”,lwd = 2,lty = 1,
       main =“ “,cex.main = 0.8,xlab =” “)

    以下输出是上述代码的结果:

    可以清楚地看到,即使波动率的微小变化也会对DNT的价格产生巨大影响。 

    大多数最终用户认为最大的风险是现场接近触发点。这是因为最终用户真的以二进制方式考虑二元期权。 

    我们可以使用GetGreeks函数来估计维加,γ,δ和有峰。
    对于γ,我们可以通过以下方式使用GetGreeks函数:

    GetGreeks 
        all_args1 
        all_args1 [[arg]] 
        all_args2 [[arg]] 
        (do.call(FUN,all_args1) - 
           do.call(FUN,all_args2))/(2 * epsilon)
    } 
    Gamma 
        arg1 
        arg2 
        arg3 
        y1 
        y2 
       (y1  -  y2 )/(2 * epsilon)
    } 
     
    delta 
     (i in 1:200){ delta [i] 
        x [i],1000000,0.96,0.92,0.06,0.5,0.02 ,-0.02)vega [i] 
        x [i],1000000,0.96,0.92,0.06,0.5,0.0025,-0.025)theta [i] 
        x [i],1000000,0.96,0.92,0.06,0.5,0.0025, - 0.025)gamma [i] 
      
    } 
    windows()plot(x,vega,type =“l”,xlab =“S”,ylab =“”,main =“Vega”) 
    
    

    以下图表是上述代码的结果:

    在看了价值图表之后,DNT的增量也非常接近直觉; 如果我们接近更高的障碍,我们的增量变为负值,如果我们接近较低的障碍,增量变为正值如下:

    windows()
    plot(x,delta,type =“l”,xlab =“S”,ylab =“”,main =“Delta”)
    

    对于动态套期保值者来说,这意味着在价格上涨后买入一些澳元兑美元,并在价格下跌后卖出相同的金额。

    可以通过如下的伽玛来描述增量的变化:

    windows()
    plot(x,gamma,type =“l”,xlab =“S”,ylab =“”,main =“Gamma”)
    

    负伽玛意味着如果该点上升,我们的增量正在减少,但如果该点下降,我们的增量增加。

    windows()
    plot(x,theta,type =“l”,xlab =“S”,ylab =“”,main =“Theta”)
    

     我们之前已经介绍了布莱克 - 斯科尔斯表面; 现在,我们可以详细介绍一下。代码如下:

    BS_surf 
     n 
     k 
     m 
     for(i in 1:n){ 
       for(j in 1:k){ 
         l 
          m [i,j] 
          } 
    } 
    persp3D(z = m,xlab =“underlying”,ylab =“Time”,
     } 
     上面的代码给出了以下输出:

      

    Double-no-touch 模拟

    DNT价格在2014年第二季度的变化情况如何?
     

     
     option_price 
     for(i in 1:n){ option_price [i] U = 0.9600,L = 0.9200,sigma = 0.06,T = t [i] /(60 * 24 * 365),      r = 0.0025,b = -0.0250)} a 
     b 
     option_price_transformed =(option_price  -  a)* 0.03 /(b  -  a)+ 0.92 par(mar = c(6,3,3,5 ))matplot(cbind(underlying,option_price_transformed),type = “l”,  
    
    
    
    
     

    以下是上述代码的输出:

    DNT的价格在右轴显示为红色(除以1000),实际的AUDUSD价格在左轴显示为灰色。

    dnt1(0.9203,1000000,0.9600,0.9200,0.06,59 / 365,0.0025,-0.025)
    [1] 5302.213

    比较此5302美元至最初的48564美元期权价格 

    在下面的模拟中,我们将展示一些不同的轨迹所有这些都是从与4月1日黎明时相同的0.9266澳元兑美元现货价格开始,我们将看到其中有多少人保持在(0.9200。0.9600)区间内,为简单起见,我们将使用与我们用于定价DNT相同的6%波动率来模拟几何布朗运动:

    library(matrixStats)
    DNT_sim 
     L = 0.92,N = 5){ 
      
        option_price 
     
      matplot(t,option_price,type =“l”,main =“DNT price”,
           xlab =“”,ylab =“”)} 
    set.seed(214)
    system.time(DNT_sim())

    以下是上述代码的输出:

    还有问题吗?联系我们!

    展开全文
  • for(i in 1:n){ option_price [i] U = 0.9600,L = 0.9200,sigma = 0.06,T = t [i] /(60 * 24 * 365), r = 0.0025,b = -0.0250)} a b option_price_transformed =(option_price - a)* 0.03 /(b - ...

    Double-no-touch(DNT)选项是二元期权,在到期时支付固定金额的现金。不幸的是,fExoticOptions包目前不包含此选项的公式。我们将展示两种不同的方式来定价包含两种不同定价方法的DNT。在本节中,我们将调用函数dnt1,对于第二种方法,我们将使用dnt2作为函数的名称。

     

     掌握数量金融的ř

     首先,我们将尝试使用正常参数,看看收敛速度有多快:

    print(dnt1(100,10,120,80,0.1,0.25,0.05,0.03,20,TRUE))
    
     
    
    以下屏幕截图显示了上述代码的结果:

    公式错误图表显示,在第七步之后,其他步骤不会影响结果。这意味着,出于实际目的,可以通过仅计算前七个步骤来快速估计无限和。这看起来确实很快收敛。然而,这可能是纯粹的运气或巧合。

    那么将波动率降低到3%呢我们必须将Ñ设置为50才能看到收敛?:

    print(dnt1(100,10,120,80,0.03,0.25,0.05,0.03,50,TRUE))
    
    上述命令提供以下输出:

    不是那么令人印象50步不然没那么糟糕。如何降低波动率甚至更低?1%时,带有这些参数的公式就会爆炸。首先,这看起来很灾难; 然而,当我们使用3%的波动率时,DNT的价格已经是支付的98.75%。逻辑表示DNT价格应该是波动率的单调递减函数,因此我们已经知道,如果波动率低于3%,DNT的价格应至少为98.75%。

    另一个问题是,如果我们选择极高的ü或极低的L,则会出现计算错误然而,类似于波动性的问题,常识也有帮助。如果我们将ü更高或更低,则DNT的价格应该增加。

    还有一个伎俩。由于所有问题都来自一个参数,我们可以尝试将b设置为0,这将使得等于0.5。如果我们也将ř设置为0,则当波动率下降时,DNT的价格会收敛到100%。

    无论如何,每当我们用有限的总和代替无限和时,总是很好的知道什么时候它会工作,什么时候不工作。我们制作了一个新代码,考虑到融合并不总是很快诀窍。在于,只要最后一步发生了重大变化,该函数就会计算下一步。这仍然不适合所有参数,因为无法解决非常低的波动性,除非我们接受隐含波动率低于1%的这一事实,这是一个极端的市场情况,在这种情况下,DNT期权不应定价通过这个公式:

     

    既然我们有一个很好的公式,就可以绘制一些与DNT相关的图表来更熟悉这个选项。之后,我们将使用具有以下参数的特定AUDUSD DNT选项:L等于0.9200,U等于0.9600,K(支付)等于100万美元,T等于0。25年,波动率等于6%,
    r_AUD等于2.75%,r_USD等于0.25%,b等于-2.5%。我们将计算并绘制该DNT的所有可能值,从0.9200 
    到0.9600; 每一步都是一个点(0.0001),所以我们将使用2000步。

    以下代码绘制了底层价格的图表:

     
     for(i in 1:2000){ 
       y [i] 
        z [i] 
     } 
    matplot(x,cbind(y,z),type =“l”,lwd = 2,lty = 1,
       main =“ “,cex.main = 0.8,xlab =” “)

    以下输出是上述代码的结果:掌握数量金融的ř

    可以清楚地看到,即使波动率的微小变化也会对DNT的价格产生巨大影响。 

    大多数最终用户认为最大的风险是现场接近触发点。这是因为最终用户真的以二进制方式考虑二元期权。 

    同样非常有趣的是,由于T-Bill价格与波动性无关,并且由于DNT + DOT = T-Bill等式成立,因此增加的波动性将使DNT的价格降低完全相同的数量,就像它将增加一样DOT的价格。毫无疑问,DOT的维加应该是DNT的精确镜像。

    我们可以使用GetGreeks函数来估计维加,γ,δ和有峰。
    对于γ,我们可以通过以下方式使用GetGreeks函数:

    GetGreeks 
        all_args1 
        all_args1 [[arg]] 
        all_args2 [[arg]] 
        (do.call(FUN,all_args1) - 
           do.call(FUN,all_args2))/(2 * epsilon)
    } 
    Gamma 
        arg1 
        arg2 
        arg3 
        y1 
        y2 
       (y1  -  y2 )/(2 * epsilon)
    } 
     
    delta 
     (i in 1:200){ delta [i] 
        x [i],1000000,0.96,0.92,0.06,0.5,0.02 ,-0.02)vega [i] 
        x [i],1000000,0.96,0.92,0.06,0.5,0.0025,-0.025)theta [i] 
        x [i],1000000,0.96,0.92,0.06,0.5,0.0025, - 0.025)gamma [i] 
      
    } 
    windows()plot(x,vega,type =“l”,xlab =“S”,ylab =“”,main =“Vega”) 
    
    

    以下图表是上述代码的结果:掌握数量金融的ř

    在看了价值图表之后,DNT的增量也非常接近直觉; 如果我们接近更高的障碍,我们的增量变为负值,如果我们接近较低的障碍,增量变为正值如下:

    windows()
    plot(x,delta,type =“l”,xlab =“S”,ylab =“”,main =“Delta”)
    

    这实际上是一个非凸的情况; 如果我们想做一个动态的三角洲对冲,我们肯定会赔钱。如果现货价格上涨,DNT的差值会减少,所以我们应该购买一些澳元兑美元作为对冲。但是,如果现货价格下跌,我们应该卖出一些澳元兑美元。想象一下,澳元兑美元在早上上涨20点,然后在下午下跌20点。对于动态套期保值者来说,这意味着在价格上涨后买入一些澳元兑美元,并在价格下跌后卖出相同的金额。

    可以通过如下的伽玛来描述增量的变化:

    windows()
    plot(x,gamma,type =“l”,xlab =“S”,ylab =“”,main =“Gamma”)
    

    负伽玛意味着如果该点上升,我们的增量正在减少,但如果该点下降,我们的增量增加。这听起来不太好。对于这种不方便的非凸状况,有一些补偿,即THETA的值是正的。如果没有任何反应,但有一天过去了,DNT将自动获得更多价值。

    在这里,我们使用THETA作为偏导数的负1倍,因为如果(TT)是剩余时间,我们检查值如何随着吨增加一天而变化:

    windows()
    plot(x,theta,type =“l”,xlab =“S”,ylab =“”,main =“Theta”)
    

    伽马越负,我们的θ越正。这就是时间补偿负伽玛产生的潜在损失的方式。

     我们之前已经介绍了布莱克 - 斯科尔斯表面; 现在,我们可以详细介绍一下。这个表面也是对θ和三角如何工作的很好的解释。它显示了不同现货价格和成熟时间的期权价格,因此该表面的斜率是一个方向的θ和另一个方向的增量代码如下:

    BS_surf 
     n 
     k 
     m 
     for(i in 1:n){ 
       for(j in 1:k){ 
         l 
          m [i,j] 
          } 
    } 
    persp3D(z = m,xlab =“underlying”,ylab =“Time”,
     } 
     上面的代码给出了以下输出:

    掌握数量金融的ř

      

    Double-no-touch 模拟

    DNT价格在2014年第二季度的变化情况如何?
    我们有开放 - 高 - 低 - 关闭型时间序列,澳元兑美元的频率为5分钟,因此我们知道所有极端价格:

     
     option_price 
     for(i in 1:n){ option_price [i] U = 0.9600,L = 0.9200,sigma = 0.06,T = t [i] /(60 * 24 * 365),      r = 0.0025,b = -0.0250)} a 
     b 
     option_price_transformed =(option_price  -  a)* 0.03 /(b  -  a)+ 0.92 par(mar = c(6,3,3,5 ))matplot(cbind(underlying,option_price_transformed),type = “l”,  
    
    
    
    

    以下是上述代码的输出:掌握数量金融的ř

    DNT的价格在右轴显示为红色(除以1000),实际的AUDUSD价格在左轴显示为灰色。绿线是0.9200和0.9600的障碍。该图表显示,在2014年第二季度,澳元兑美元货币对在(0.9200; 0.9600)区间内交易; 因此,DNT的支出将为100万美元这个DNT看起来是一项非常好的投资。然而,只是现实一个先验几乎无限集的轨迹。它可能发生了不同的事情例如,2014年5月2日,到期还有59天,澳元兑美元汇率为0.9203,距离下方隔离点只有3个点此时,此DNT的价格仅为5302美元,如下面的代码所示:

    dnt1(0.9203,1000000,0.9600,0.9200,0.06,59 / 365,0.0025,-0.025)
    [1] 5302.213

    比较此5302美元至最初的48564美元期权价格 

    在下面的模拟中,我们将展示一些不同的轨迹所有这些都是从与4月1日黎明时相同的0.9266澳元兑美元现货价格开始,我们将看到其中有多少人保持在(0.9200。0.9600)区间内为简单起见,我们将使用与我们用于定价DNT相同的6%波动率来模拟几何布朗运动:

    library(matrixStats)
    DNT_sim 
     L = 0.92,N = 5){ 
      
        option_price 
     
      matplot(t,option_price,type =“l”,main =“DNT price”,
           xlab =“”,ylab =“”)} 
    set.seed(214)
    system.time(DNT_sim())

    以下是上述代码的输出:掌握数量金融的ř

    在这里,唯一幸存的轨迹是红色轨迹; 在所有其他情况下,DNT击中较高或较低的障碍该生产线。set.seed(214)授予,该模拟会看我们运行这个相同的任何时候五分之一仍然不是那么糟糕。这表明对于没有动态套期保值的最终用户或赌徒,此选项的近似值为支付的20%(特别是因为利率很低,货币的时间价值并不重要)。

    然而,五条轨迹仍然太少,无法得出这样的结论。我们应该检查DNT生存率,以获得更高数量的轨迹。

    幸存轨迹的比率可以是该DNT的先验现实生存概率的良好估计; 因此,它的最终用户价值。在迅速增加N之前,我们应该记住这个模拟花了多少时间。对于我的电脑,N = 5需要50.75秒,N = 15需要153.11秒。

     

     

     

    还有问题吗?联系我们!

     

     

    转载于:https://www.cnblogs.com/tecdat/p/10108830.html

    展开全文
  • RStudio是用于R编程的开源工具... 在此大数据分析R语言RStudio使用教程文章中,我们将介绍RStudio免费版本的一些最佳功能:RStudio Desktop。我们收集了一些RStudio的重要技巧,窍门和快捷方式,可快速将您变成RStu...

      RStudio是用于R编程的开源工具。如果您对使用R编程感兴趣,则值得了解RStudio的功能。它是一种灵活的工具,可帮助您创建可读的分析,并将您的代码,图像,注释和图解保持在一起。

      在此大数据分析R语言RStudio使用教程文章中,我们将介绍RStudio免费版本的一些最佳功能:RStudio Desktop。我们收集了一些RStudio的重要技巧,窍门和快捷方式,可快速将您变成RStudio高级用户!

      1.在窗口窗格之间快速导航

      RStudio窗格可让您访问有关项目的重要信息。知道如何在窗格之间切换而无需触摸鼠标来移动光标将节省时间并改善工作流程。使用这些快捷方式可以在窗格之间即时移动:

      1)Control/Ctrl + 1:源代码编辑器(您的脚本)

      2)Control/Ctrl + 2: 安慰

      3)Control/Ctrl + 3: 救命

      4)Control/Ctrl + 4:历史

      5)Control/Ctrl + 5:文件

      6)Control/Ctrl + 6:情节

      7)Control/Ctrl + 7:套餐

      8)Control/Ctrl + 8: 环境

      9)Control/Ctrl + 9:查看者

      如果您希望一次只看到一个窗格,请添加Shift到上述任何命令中以最大化窗格。例如,输入Control/Ctrl + Shift + 1以最大化您正在使用的R脚本,笔记本或R Markdown文件。

      (旁注:+我们在快捷方式中显示的意思是“和”,因此不需要实际键入+键。)

      但是,如果您想返回标准的四窗格视图怎么办?没问题!输入Control/Ctrl + Shift + 0:

    bdedadbb5fcf4f4afe33e1eb32f7078a.png

      2.键盘快捷键

      了解RStudio键盘快捷键将在编程时节省大量时间。RStudio提供了许多有用的快捷方式,您可以通过顶部的菜单访问它们Tools > Keyboard Shortcuts Help。

      访问RStudio键盘快捷键的另一种方法是使用快捷键!要访问快捷方式,请Option + Shift + K在Mac或Alt + Shift + KLinux和Windows上输入。

      以下是一些我们最喜欢的RStudio快捷方式:

      1)在Mac或Linux和Windows上,将

      2)插入管道运营商%>%与Command + Shift + M在Mac上,或Ctrl + Shift + M在Linux和Windows。

      3)Command + Enter在Mac或Control + EnterLinux和Windows 上运行当前代码行。

      4)Command + A + Enter在Mac或Control + A + EnterLinux和Windows 上使用运行所有代码行。

      5)重新启动当前的R会话,然后Command + Shift + F10在Mac或Control + Shift + F10Linux和Windows上重新开始。

      6)Command + Shift + C在Mac或Control + Shift + CLinux和Windows 上使用注释或取消注释行。

      7)试图记住您之前提交的命令吗?Command + [up arrow]在Mac或Control + [up arrow]Linux和Windows 上,从控制台搜索命令历史记录。

      还有许多有用的快捷方式可用,但是通过掌握上述快捷方式,您将成为RStudio高级用户!

      RStudio快捷方式的另一个重要资源是此处提供的官方RStudio备忘单。

      3.通过代码完成节省时间

      开始键入后,将弹出一个建议窗口,其中包含匹配的函数,对象和代码片段名称。您可以使用向上或向下箭头在列表中切换,然后单击return/Enter以进行选择。

      另外,您可以利用称为模糊匹配的非常酷的功能,该功能使您可以通过输入与匹配项唯一的字母来缩小搜索范围。您不需要输入所有字母,只要您输入的内容与字符串的顺序匹配即可。

      让我们看一下这些代码完成方法是如何工作的。首先,我们将installed.packages()通过键入部分函数名称来选择函数,然后使用箭头进行选择。接下来,我们将使用模糊匹配仅输入instd以进一步缩小选择范围:

    28b150618548dfd5708a7af99f363512.gif

      4.快速查找文件和功能

      在RStudio中,无需摸索文件夹结构来查找文件,也无需挖掘功能!输入快捷方式control/ctrl + .以打开Go to File/Function窗口,然后使用模糊匹配技能来缩小选择范围:

    6e61295fb2004474f6b622530c5e30f2.gif

      5.自定义外观

      RStudio提供了大量选项,可根据您的喜好自定义外观。在RStudio标签下,导航以Preferences > Appearance浏览许多可用选项。RStudio的一个不错的功能是您可以快速单击Editor theme窗口以预览每个主题。

    a36e818702a25d28a65c4c79232615f8.png

      6.轻松链接到文档

      在Help右下方窗口的标签下,您会找到指向R函数和R软件包在线文档的便捷链接。例如,如果我们install.packages()使用搜索栏搜索有关功能的信息,则返回官方文档:

    fd5227a9bc017d621625bb6af0d5f918.png

      我们还可以在Help选项卡中访问文档,方法是在软件包或函数之前添加?,例如,?install.packages然后在控制台中运行命令。无论使用哪种方法,RStudio都会在您键入时自动填充匹配的函数名称!

      7.预览并保存您的绘图

      在RStudio会话期间生成的图将显示在Plots右下方窗口的选项卡下。在此窗口中,您可以通过放大和缩小来检查图。如果要保存绘图,则可以将绘图另存为PDF或图像文件。

    930eaa08461b1f24e4ec0aa9ed6940e3.png

      8.导入和预览数据集

      RStudio使导入和预览数据集变得容易,无需编码!在Environment右上方窗口的选项卡下,具有使您可以导入数据集的功能。此功能支持多种格式:

    18f625a80aa93d73e379e4612b4a3a14.png

      您甚至可以在加载数据集之前对其进行预览:

    52b81415a06df100a1fd8247f4637db6.png

      在将数据集加载到RStudio中之后,您可以使用View()命令或单击数据集的名称来查看它:

    d6d6bf437afdcbb9cbcd950bc479b31f.png

      9.一键查看命令历史记录

      之前,我们从控制台学习了命令历史记录的快捷方式。RStudio还使您可以通过单击History选项卡在右上窗口中查看整个命令历史记录:

    f5613cbc8c0811d6e04175904f3fa468.png

      10.保存您的“真实”工作。删除其余的。

      练习良好的内务管理,避免将来遇到不可预见的挑战。如果创建值得保存的R对象,请在R脚大数据分析R语言RStudio使用教程件中捕获生成该对象的R代码。保存R脚本,但不要保存创建对象的环境或工作空间。

      为防止RStudio保存工作区,请打开Preferences > General并取消选择.RData在启动时还原到工作区的选项。确保指定您永远不要保存工作空间,如下所示:

    615ef579b92edd534485b880ce565c24.png

      现在,每次打开RStudio时,都会从一个空会话开始。您以前的会话生成的代码都不会被记住。R脚本和数据集可用于从头开始重新创建环境。

      11.组织项目工作

      RStudio提供了强大的功能,可让您保持井井有条;项目。在进行多个分析时,保持有条理很重要。RStudio的项目使您可以将所有重要工作放在一个地方,包括代码脚本,绘图,图形,结果和数据集。

      导航到FileRStudio中的选项卡,然后选择,创建一个新项目New Project...。您可以选择在新目录或现有目录中创建新项目。如果您使用的是R软件包或Shiny Web应用程序,则RStudio提供专用的项目类型。

      当您需要与同事共享工作时,RStudio项目非常有用。您可以将项目文件(以结尾.Rproj)与所有支持文件一起发送,这将使您的同事更轻松地重新创建工作环境并重现结果。

      但是,如果您希望进行无缝协作,则可能需要将软件包管理引入工作流程中。幸运的是,RStudio提供了一个有用的软件包管理工具renv,该工具现已与RStudio项目兼容。renv接下来我们将介绍。

      12.使用renv管理软件包版本

      我们很喜欢AAA教育的R,但是管理程序包版本可能是一个挑战!幸运的是,得益于RStudio 的renv(“可复制环境”)软件包,R软件包管理比以往任何时候都容易。现在,RStudio包含对的内置支持renv。

      renv在本大数据分析R语言RStudio使用教程中,我们不会详细介绍如何与RStudio项目一起使用,因为RStudio在我们提供的链接和小插图中为您提供了所需的信息。但是,renv与RStudio一起使用可以使R包管理更加容易,所以我们想告诉您!

      该renv软件包将替代RStudio曾经维护的Packrat软件包。

      要使用renv与您的RStudio项目包升级到RStudio的最新版本,然后安装renv与包library("renv")。从那里,您可以选择renv与所有新项目一起使用:

    404497d99ffe2d3fa0596076530d5043.png

      如果您想renv与现有项目一起使用,请浏览Tools > Project Options > Environments并选中相应的框以启用renv:

    10a4ed18bb939d5549c8d7cb52d620e8.png

      13.在RStudio中使用GitHub管理版本控制

      除了在RStudio中管理软件包外,您还可以将GitHub与RStudio一起使用,以维护项目和R脚本的版本控制。看看这篇文章从GitHub和这篇文章从RStudio所有你需要的Git集成到您的工作流程RStudio的信息。

      14.代码段

      RStudio提供了一个非常有用的功能,用于插入称为代码段的通用代码块。我们的最爱之一是该lib代码段,可在调用library()函数加载R包时为您节省一些输入时间:

    bbcb9959c9ff4904a6637b69131ef1b5.png

      按下return键以选择代码段后,library()函数将被加载并且光标已定位,因此您可以立即开始输入要加载的包的名称:

    1b03a9c26a30982ec672da3a6d85197e.png

      我们另一个喜欢的fun片段是提供用于编写​​自定义函数的基本模板的片段。您甚至可以添加自己的代码段!要了解更多信息,请查看这篇文章从RStudio代码片段。

      15.深入研究函数的源代码

      如果您想研究某个函数的源代码,请将光标移至所需的函数并输入F2(在Mac上,您可能需要输入fn + F2)。此功能甚至适用于从您使用的任何R包加载的功能。

      16.函数提取

      如果您已经编写了要转换为功能的代码块,请突出显示该代码块,然后control + option X在Mac Ctrl + Alt + X上的Linux / Windows上输入。将会出现一个弹出窗口,要求您选择一个函数名称。

    40d573ac284531414748d209c63a8523.png

      选择功能名称后,将代码自动添加为功能所需的输入和代码结构。

    a60ac7bf4a7d2727f9acb2e8c03a0da5.png

      如果您有要提取的变量,请突出显示该变量,然后control + option V在Mac Ctrl + Alt + V上的Linux / Windows上输入。

      17.重命名范围

      在某些时候,您可能需要更改函数名称或其中一个函数中使用的变量。但是使用查找和替换来执行此操作可能会令人不安!幸运的是,RStudio可以在范围内重命名。这意味着您的更改将仅限于感兴趣的变量或功能。大数据分析R语言RStudio使用教程https://www.aaa-cg.com.cn/data/2394.html这样可以防止您意外替换代码脚本中其他位置的同名变量。要使用此功能,请选择要更改的函数或变量,然后control + shift + option + M在Mac或Ctrl + Shift + Alt + MLinux / Windows上输入。

    6e30daf4666ccbed32daa33406146a2d.png

      18.多光标支持

      RStudio支持多个光标。按住optionMac或AltWindows / Linux时,只需单击并拖动鼠标。

    90215a5d327fd1a9ee039143c5b7f84b.png
    2d1670b9e67119f56f8f44caea4ab7c4.png

      19.将Python与RStudio一起使用并网状

      RStudio支持python编码。 在RStudio中启动并运行python的过程涉及以下常规步骤:

      安装基本版本的Python

      安装pip和virtualenv

      在RStudio项目中创建Python环境

      激活您的Python环境

      在您的环境中安装所需的Python软件包

      安装并配置R Reticulate软件包以使用Python

    4aca78673e0970af28343799d763a910.png

      大数据分析R语言RStudio使用教程提供了上述步骤所需的代码。 我们尝试了一下,仅用了几分钟就可以在RStudio中运行python了:

      20.使用DBI包查询SQL

      有很多方法可以在RStudio中运行SQL查询。 从R的DBI包开始,以下是三种最受欢迎的方法。

      首先,生成一个内存中的SQL数据库,以在所有SQL查询示例中使用。 您将生成一个著名的“ mtcars”数据集的SQL数据库。 这是代码:

    c051a224000a4461c9074a4d77a42e01.png

      现在编写一个SQL查询,以使用四缸引擎从数据库中选择所有汽车。此命令返回一个数据框,您将另存为dbi_query:

    fac7d62b8575ad951bc6cce0bedb0362.png

      数据框如下所示:

    caea2efad1a5cf87078cfafd059d2ac5.png

      21.使用R Markdown或使用R Notebook查询SQL

      通过创建{sql}代码块,可以在R Notebook或R Markdown中获得相同的结果。 使用第一个示例中的连接和数据库,运行以下代码:

    76b3ebd2408c2bd0d2e1c55ae9922f0a.png

      指定output.var =“ mt_cars_df”将查询结果保存到数据框。此数据框是标准R数据框,与您在前面的示例中生成的数据框相同。 您可以在R代码块中使用此数据帧来执行分析或生成ggplot,例如:

    a2b2dd3d800d14d206aefef282f9fe84.png
    b249ef16ef4dad92652feace01dc3a2d.png

      22.使用dbplyr查询SQL

      最后,您将使用dbplyr软件包编写标准的dplyr命令,这些命令将转换为SQL! 再次使用第一个示例中的连接和数据库,您可以编写一个标准filter()调用来查询具有四个汽缸的汽车,这将返回一个列表对象:

    b4efa909b640adf02c987189b99a1198.png

      如果要查看此命令转换为的SQL代码,可以使用dbplyr中的show_query()函数:

    bad4fec81899b8911f0db1078a859f98.png

      对查询结果满意后,可以使用dbplyr中的collect()函数将结果另存为数据框:

    38707719c21b79a5d6c6e72a588e9408.png

      你有它! 查询具有类似结果的SQL数据库的三种不同方法。 示例之间的唯一区别是dbplyr方法返回一个小标题,而前两个方法返回一个标准R数据帧。

      要了解有关使用RStudio查询SQL数据库的更多信息,请查阅大数据分析R语言RStudio使用教程

      23.将它带到云端!

      RStudio现在提供了一个名为RStudio Desktop的基于云的版本,您猜对了……RStudio Cloud。 RStudio Cloud允许您在RStudio中进行编码,而无需安装软件,只需要一个Web浏览器。

      RStudio Cloud中的工作被组织到类似于桌面版本的项目中,但是RStudio Cloud使您可以指定希望用于每个项目的R版本。

      RStudio Cloud还可以轻松,安全地与同事共享项目,并确保每次访问项目时都能完全再现工作环境。

      如您所见,RStudio Cloud的布局与RStudio Desktop非常相似:

    8fc5d2743ef58b66222393514753bc32.png

    相关推荐

    大数据分析R Markdown的使用技巧

    大数据分析使用numpy在pandas dataframe上添加列

    大数据分析Python PyAudio库语音API转文字教程

    大数据分析师面试求职攻略

    大数据分析机器学习的数据清理和准备

    0基础小白必知的10种机器学习算法

    展开全文
  • R语言 RStudio快捷键总结

    千次阅读 2015-12-18 16:21:41
    运行当前文档 Ctrl+Alt+R Command+Option+R 从开始运行至当前行 Ctrl+Alt+B Command+Option+B 从当前行运行至结尾 Ctrl+Alt+E Command+Option+E 运行当前函数定义 Ctrl+Alt+F Command+Option+F 运行当前块 Ctrl+Alt+...
  • 平常我们使用R语言的时候常常都是在交互界面中一步一步更改运行,所以一般用不到命令来执行,但有时候对于批量运行或者某种情况下数据较大,直接在Rstudio中运行卡顿,在把代码提前调试好后后续使用命令行可能更好,...
  • Ctrl+Shift+R Command+Shift+R 运行当前/被选中的代码 Ctrl+Enter Command+Enter 再次运行以前区域 Ctrl+Shift+P Command+Shift+P 运行当前文件 Ctrl+Alt+R Command+Option+R 运行文件中从开头到光标所在处的代码 ...
  • R语言复习总结

    万次阅读 2020-01-16 11:04:56
    R语言复习总结
  • scala语言学习之Option

    2012-08-17 01:17:53
    前两天看到有篇关于Option的小文章,上面引用NullPointer的发明人C.A.R. Hoare老先生说的一句话:空引用是一个“十亿美元的错误”(http://en.wikipedia.org/wiki/Null_pointer#Null_pointer)。   当时以为这里...
  • RStudio:R语言编辑器

    2019-09-30 21:16:26
    RStudio:R语言编辑器 四窗口 左上:写代码,运行的方式是ctrl+Enter,或者用Run按钮 10 + 15 ## [1] 25 左下:终端,上面窗口的代码运行后会在这里显示,也可以直接在这里写代码 右上:工作区,显示变量,...
  • R语言笔记一

    万次阅读 多人点赞 2016-06-19 21:44:10
    r语言
  • r语言rstudio安装Installing R and RStudio on your personal computer is super easy. I hope this helps others who are starting their Data Science journey with R programming.在您的个人计算机上安装R和...
  • R语言学习

    千次阅读 2018-03-06 12:24:05
    第一章 R语言介绍 (1)R的赋值符号为<-: # 创建一个名为x的向量,包含5个标准正态分布的随机偏差 x <- rnorm(5) R可以反方向赋值,即: rnorm <- x 与上面语句等价。 (2)可以...
  • R语言 RStudio快捷键

    千次阅读 2013-12-04 10:37:30
    Command+Option+R 从开始运行至当前行 Ctrl+Alt+B Command+Option+B 从当前行运行至结尾 Ctrl+Alt+E Command+Option+E 运行当前函数定义 Ctrl+...
  • r语言 安装程序包_R语言的安装过程

    千次阅读 2020-07-25 11:29:33
    r语言 安装程序包 R语言安装 (R language Installation) Prior to the coding part, it is essential to install the necessary environment for the R language. So here is the process of installation of the R ...
  • 大数据分析R语言RStudio使用教程

    千次阅读 2020-10-16 15:11:38
     在此大数据分析R语言RStudio使用教程文章中,我们将介绍RStudio免费版本的一些最佳功能:RStudio Desktop。我们收集了一些RStudio的重要技巧,窍门和快捷方式,可快速将您变成RStudio高级用户!  1.在窗口窗格...
  • R语言简介

    万次阅读 2016-10-15 17:03:02
    R语言简介 1什么是R语言 2R语言能干什么 3R语言有什么优势 4R语言编程工具 5R语言学习路线图 6R语言参考资料  R语言是主要用于统计分析、绘图的语言和操作环境。 R本来是由来自新西兰奥克兰大学的Ross Ihaka
  • r语言是高级编程语言R is a programming language and environment created with the purpose of statistical computing and graphics. R is gaining popularity in recent years with big data and its useful ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,445
精华内容 17,778
关键字:

optionr语言