R分割调用多行的功能

时间:2014-01-12 16:34:51

标签: r coding-style

我想知道是否有办法将R中的函数调用分成几行,而不是使用逗号或'+',这并不总是适用。 我基本上看起来像Python的'\'逃脱。

例如,我想显示这一行:

PromoterIslands$illumina_probes[bins_with_probes]-tapply(CGIP_to_Probe$subjectHits,CGIP_to_Probe$subjectHits,function(x) length(x))

为:

PromoterIslands$illumina_probes[bins_with_probes]
<-tapply(CGIP_to_Probe$subjectHits,CGIP_to_Probe$subjectHits,
function(x) length(x))]

有没有办法做到这一点?

提前致谢

2 个答案:

答案 0 :(得分:1)

您可以在各行上拆分命令,无需特殊标记。

您编写的命令几乎没问题,您只需将<-运算符放在第一行。

例如,这是有效的R代码,并将13分配给a

a <-
   5 +
   8

但这不是

a
  <- 5 +
  8

但请注意,这是有效的代码

a <-
  5
  + 8

但是会将5分配给a并打印8。

答案 1 :(得分:0)

假设您正在谈论源代码(而不是希望以某种方式打印某些内容),您可以在任何不会产生语法完整语句的地方中断R代码。没有特殊字符告诉R语句不完整。在您的情况下,一个选项是:

PromoterIslands$illumina_probes[bins_with_probes] <- 
  tapply(
    CGIP_to_Probe$subjectHits,
    CGIP_to_Probe$subjectHits,
    function(x) length(x)
  )

您必须将<-保留在第一行的末尾,否则PromoterIslands$illumina_probes[bins_with_probes]是一个语法完整的语句,将被评估。同样,在下一行中,您必须将(保留在与tapply相同的行上,否则tapply是语法上完整的语句(返回tapply函数的内容)。

虽然这并没有完全回答你的问题,但希望你会发现有足够的地方你可以在R中打破一条线,因为缺少你正在寻找的特殊命令不是问题。