Графики R петли уценки не работают - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь использовать цикл for в R markdown, но по какой-то причине он не работает. Вот код:

```{r}
for (i in 1:length(endothelial_ids)) {
    id <- endothelial_ids[i]
    sym <- neuron_symbols[i]
    VlnPlot(object = seurat_object, features.plot = id, do.return = TRUE) + labs(title = sym)
    renderPlot({
      fp <- FeaturePlot(object = seurat_object, features.plot = id, cols.use = c("grey", "blue"),
                            reduction.use = "tsne", do.return = TRUE)
      lapply(fp, function(x){x + labs(title = sym)})
    })
}
```

Без цикла for код работает и сгенерированный файл отчета .html выглядит хорошо.

В консоли я вижу несколько предупреждений:

выходной файл: /private/var/folders/hq/5ygqq7yn2hd0ln4kznxvx5j80000gn/T/Rtmpj7bedl/cell_type_assignments.knit.md

Предупреждение в file.rename (от, до): не может переименовать файл '/ private / var / folder / hq / 5ygqq7yn2hd0ln4kznxvx5j80000gn / T / Rtmpj7bedl / file613d370b37d8_files / figure-html' в '/ private / var / folder / hq / 5ygqq7yn2jh0hn0h0x0h000 / 5ygqq7yn2hd0ln4kznxvx5j80000gn / T / Rtmpj7bedl / file613d370b37d8_files / figure-html ', причина' Нет такого файла или каталога ' Предупреждение в file.rename (от, до): не может переименовать файл '/ private / var / folder / hq / 5ygqq7yn2hd0ln4kznxvx5j80000gn / T / Rtmpj7bedl // private / var / folder / hq / 5ygqq7yn2hd0ln4kznxvx5j80000gn / T / Rtt_fh2_fh6_fh6_f6_ht_f_h_t_h_t_h_t_h2_ht_f2 / 5ygqq7yn2hd0ln4kznxvx5j80000gn / T / Rtmpj7bedl / file613d370b37d8_files / figure-html ', причина' Нет такого файла или каталога '

Вывод создан: /private/var/folders/hq/5ygqq7yn2hd0ln4kznxvx5j80000gn/T/Rtmpj7bedl/file613d370b37d8.html

Любые предложения будут с благодарностью.

Обновление

Если я обертываю VlnPlot в функции print(), он его рисует, но не FeaturePlot:

  print(VlnPlot(object = seurat_object, features.plot = id, do.return = TRUE) + labs(title = sym))
  print(renderPlot({
  fp <- FeaturePlot(object = seurat_object, features.plot = id, cols.use = c("grey", "blue"),
                            reduction.use = "tsne", do.return = TRUE)
  lapply(fp, function(x){x + labs(title = sym)})
  }))

И вместо FeaturePlot в отчете я вижу следующее:

enter image description here

Если я удаляю функцию renderPlot() и обертываю lapply() в print(), он печатает мне два графика вместо одного: с неправильным исходным заголовком и последним правильным. Итак, мне нужен способ избежать печати оригинального, который происходит только из кода:

fp <- FeaturePlot(object = seurat_object, features.plot = id, cols.use = c("grey", "blue"),
                            reduction.use = "tsne", do.return = TRUE)
...