Во-первых, вы должны инициализировать плотность, если вы хотите сделать это ручное назначение.
densities <- list()
Во-вторых, вы используете забавную функцию плотности. Вы должны указать другую функцию в вашем приложении. Либо вы задаете функцию и дополнительные аргументы после запятой, либо вы создаете свою собственную небольшую функцию в вызове lapply, как показано ниже.
data.1 <- data.frame(
X1 = letters[1:10],
X2 = 1:10
)
data.2 <- data.frame(
X1 = letters[11:20],
X2 = 10:1
)
ff <- list(data.1,data.2)
densities <- lapply(ff,function(i) {density(i$X2)})
Возвращает список автоматически.
Чтобы извлечь из него данные, просто используйте индексы списка:
densities[[1]]$x
Если вы назвали свой список раньше, вы также можете использовать имена:
names(ff) <- c("data.1","data.2")
densities <- lapply(ff,function(i) {density(i$X2)})
densities[['data.1']]$x