Пример данныхСоздание списка одного уровня с lapply/sapply без принуждения
> library(data.table)
> x <- c(as.IDate("2012-01-01"), as.IDate("2012-01-02"))
> x
[1] "2012-01-01" "2012-01-02"
> class(x)
[1] "IDate" "Date"
Я хотел бы выполнить функцию через vector
, и поместить результат в одном уровне list
. Вот идеальный результат:
> y <- list(x = c(as.IDate("2012-01-01"), as.IDate("2012-01-02")))
> y
$x
[1] "2012-01-01" "2012-01-02"
> class(y)
[1] "list"
> class(y$x)
[1] "IDate" "Date"
Я пробовал эти решения, но lapply
любит строить многоуровневые list
с, и sapply
любит, чтобы заставить мой IDate
к integer
.
> list(x = lapply(x, function(x) x))
$x
$x[[1]]
[1] "2012-01-01"
$x[[2]]
[1] "2012-01-02"
> list(x = sapply(x, function(x) x))
$x
[1] 15340 15341
Обратите внимание, что function(x)
просто заполнитель, я хочу, чтобы продемонстрировать, что это sapply
является то, что делает принуждение, а не функция.
Как я могу обойти это?
Не понятно, почему вам нужно сделать, это 'список (х = х)' кажется, чтобы получить требуемую мощность. – akrun
@arkun Существует функция, которую мне нужно пробежать по вектору, поэтому я использую 'sapply' /' lapply'. Я не выписал фактическую функцию, потому что хотел продемонстрировать, что сама функция не выполняла принуждение. – Chris
Попробуйте использовать 'lapply (list (x), function (x) ...)' – akrun