Моя функция в R не строит сюжет - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть функция, которая подсчитывает размер библиотеки и строит гистограммы.

Функция выглядит следующим образом

 plotLibrarySize <- function(t, cutoffPoint) {
        options(repr.plot.width=4, repr.plot.height=4)

        hist(
            t$total_counts,
            breaks = 100
        )
        abline(v = cutoffPoint, col = "red")
    }

У меня есть список объектов в моем окружении от t_1к t_n, что я зациклился, чтобы получить размер файлов.

for (i in 1:length(paths))
print(sum(get(t[i])$total_counts))

Теперь, чтобы построить это нормально, я буду использовать

plotLibrarySize(t_1,2500)

Однако, поскольку у меня много объектов, яиспользование цикла

for (i in 1:5)
plotLibrarySize(get(t[i]), 2500)

Это не генерирует ошибок на графиках или выбрасывает.Немного смущает.

1 Ответ

0 голосов
/ 21 ноября 2018

Так как примера нет, немного сложно увидеть проблему.Однако приведенный ниже пример дает мне три графика.

bar_1 <- data.frame(total_counts=rnorm(1000))
bar_2 <- data.frame(total_counts=rnorm(1000,1))
bar_3 <- data.frame(total_counts=rnorm(1000,2))

foo = function(t, cutoffPoint) {
  options(repr.plot.width=4, repr.plot.height=4)
  x=hist(t$total_counts,breaks=100)
  abline(v=cutoffPoint, col="red")
}

for(i in 1:3){
  foo(get(paste0("bar_",i))["total_counts"], 2)
}  

В качестве альтернативы, ссылаясь на ваш список (?), Это также работает:

bars = list(bar_1, bar_2, bar_3)
for(i in 1:3){
  foo(get("bars")[[i]]["total_counts"], 2)
}

Как указано выше, со списками, get не нужно:

bars = list(bar_1, bar_2, bar_3)
for(i in 1:3){
  foo(bars[[i]]["total_counts"], 2)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...