Если вы хотите, чтобы элементы вашего списка были столбцами вашего фрейма данных, вы можете использовать as.data.frame(l)
отдельно (где l
- это имя вашего списка).Поскольку вы хотите, чтобы элементы вашего списка были строками вашего фрейма данных, мы также должны заручиться поддержкой do.call("rbind", l)
:
# Since you decided not to helpfully provide your data in an easily usable
# form, such as via the output of dput(), I recreate some of it here:
l <- list(c(-3.3354997, 0.2301914, 1.0979842),
c(-3.3275922, 0.2505644, 0.8881143))
# We can use as.data.frame() on the output of do.call("rbind", l) to make
# the dataframe you're looking for:
(l_df <- as.data.frame(do.call("rbind", l)))
# V1 V2 V3
# 1 -3.335500 0.2301914 1.0979842
# 2 -3.327592 0.2505644 0.8881143
# Here's the column name you wanted:
names(l_df) <- c("mu", "szig", "kszi")
# We can then add your new column normally:
l_df$new_column <- 1-exp(-(1+l_df$kszi*((0-l_df$mu)/l_df$szig))^(-1/l_df$kszi))
# And let's take a look at the result:
l_df
# mu szig kszi new_column
# 1 -3.335500 0.2301914 1.0979842 0.07328838
# 2 -3.327592 0.2505644 0.8881143 0.05511381
, как я упоминаю в комментариях к приведенному выше коду, для будущегообратите внимание, что потенциальным ответчикам будет гораздо полезнее, если вы публикуете пример данных, используя вывод команды dput()
.См. Как создать великолепный воспроизводимый пример R для получения более подробной информации.