Я пытаюсь использовать цикл 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](https://i.stack.imgur.com/0W1x6.png)
Если я удаляю функцию renderPlot()
и обертываю lapply()
в print()
, он печатает мне два графика вместо одного: с неправильным исходным заголовком и последним правильным. Итак, мне нужен способ избежать печати оригинального, который происходит только из кода:
fp <- FeaturePlot(object = seurat_object, features.plot = id, cols.use = c("grey", "blue"),
reduction.use = "tsne", do.return = TRUE)