web-dev-qa-db-ja.com

RStudioでのコード折り畳み:コードでの階層の作成

私はRStudioでRスクリプトを書いていますが、 コード折り畳み をよく使用します。を押すと折り畳みの階層が見えることがわかりました cmdshiftO。これはとても役に立ちます。

# to my dear love ---------------------------------------------------------
2+2 
# yo man ====
x.2 = function (x) {x+2}

### I do love potatoes ####

を押して結果を確認する cmdshiftO

enter image description here

以下のコードを書くと、テキストなしでサブセクションを作成できますが、テキストがある場合は作成できないため、これがどのように機能するのかわかりません(# ====を使用して# yo man ====を使用しない)。

# to my dear love ---------------------------------------------------------
2+2
# ==== 

# yo man ====

### I do love potatoes ####
x.2 = function (x) {x+2}
data = "here is some data"

を押して結果を確認する cmdshiftOenter image description here

# to my dear love ---------------------------------------------------------の下で、下のすべてが右にシフトされていることがわかります。これはカッコいい!

  1. したがって、問題は、テキストを含むセクションの階層をどのように作成できるかということです。
  2. これを行っているのは、独特のパッケージですか、それともEmacですか?テキストを使用してサブセクションを作成し、の階層を確認するにはどうすればよいですか? cmdshiftO ボックス?
  3. 右側のボックスの視覚的な階層を減らすことで、セクションをダウンシフト(上位セクション(たとえばセクション2)から下位セクション(セクション1)に移動)するにはどうすればよいですか?
18
M. Beausoleil

クリスの答えによると 関数内のサブヘッダー

RStudioコード折り畳み階層は、関数定義とif-else構造内でのみ機能します。例えば:

# Section 1 ----
a <- 1

testfunct1 <- function () {
# sect in function=====
  b <- 2
  c <- 3
}

# Section 2 #####
d <- 4

# Section 3 =======
e <- 5

testfunct2 <- function () {
  # sect in function 2 =====
  f <- 6
  testsubfunct2_1 <- function () {
  # sect in subfunction 2_1 -----
    if (a == 1) {
      # section in if ----
      g < 7
    } else {
      # section in else ----
      h = 8
    }
  } 
}

# Section 4 ####
j <- 9

このアウトラインを作成します。

Code Outline screenshot

If-elseセクションのラベルが並んでいない理由がわかりません。

5
Greg H