grid.arrange все столбцы фрейма данных

Я сохраняю произвольное количество случайных выборок во фрейме данных:

sigmas = 1:5
xs = sapply(sigmas, function (v) rrayleigh(size, v))
mat = matrix(xs, ncol = length(sigmas), dimnames = list(NULL, sigmas))
df = data.frame(mat)

Теперь я хочу сохранить гистограмму для каждого столбца, а затем построить ее с помощью grid.arrange(). После звонка

ps = sapply(df, function (v) qplot(x = v))
p = qplot(df$X1)

p создает гистограмму, а ps$X1 выводит NULL. Что я делаю не так? Спасибо.


person Gerry    schedule 01.07.2017    source источник
comment
другой способ продолжить — преобразовать данные в длинные (плавить), а затем использовать факты.   -  person user20650    schedule 01.07.2017


Ответы (1)


(Я рекомендую использовать lapply вместо sapply)

Ты можешь измениться:

ps = sapply(df, function (v) qplot(x = v))

to:

library(iterators)
ps = lapply(iter(df,by="col"), function(v) qplot(v))

or:

ps = lapply(1:ncol(df), function(v) qplot(df[,v]))

Ваша проблема заключалась в том, что вы сразу предоставили весь фрейм данных.

person CPak    schedule 01.07.2017