Смещение кода в RStudio: создание иерархии кода
Я пишу R-скрипты в RStudio, и я часто использую code folding. Я обнаружил, что вы можете увидеть иерархию складывания, нажав cmd + shift + O. Это очень полезно.
# to my dear love ---------------------------------------------------------
2+2
# yo man ====
x.2 = function (x) {x+2}
### I do love potatoes ####
Посмотрите результат, нажав cmd + shift + O.
![введите описание изображения здесь]()
Я не понимаю, как это работает, потому что, когда я пишу код ниже, я могу создать подраздел без текста, но не тогда, когда в нем есть текст (используя # ====
, но не # 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"
Посмотрите результат, нажав cmd + shift + O.
![введите описание изображения здесь]()
Вы можете видеть, что под # to my dear love ---------------------------------------------------------
все под сдвигом направо! Это круто!
- Таким образом, возникает вопрос: как можно создать иерархию разделов, содержащих текст в ней?
- Это особый пакет или Emac, который это делает? Как я могу создавать подразделы с текстом и видеть иерархию в поле cmd + shift + O?
- Как я могу сместить секцию (перейти в более высокий раздел (например, раздел 2) в нижнюю часть (раздел 1), уменьшив визуальную иерархию в правом поле?
Ответы
Ответ 1
Как и Крис отвечает подзаголовки внутри функций
RStudio Code Складывающая иерархия работает только в определениях функций и структур 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
Выводит этот план:
![Снимок экрана схемы]()
Я не знаю, почему метки раздела if-else не выстраиваются в линию.