Подмножество списка различных типов данных - PullRequest
1 голос
/ 11 августа 2011

У меня есть список различных типов данных (факторы, data.frames и векторы, все одинаковой длины или числа строк). Я хотел бы подменять каждый элемент списка вектором это строки), который представляет имена строк.

Если бы это было data.frame (), я бы:

x <- x[rows,] 

Если бы это был вектор () или фактор (), я бы:

x <- x[rows]

Итак, я играл с этим:

x <- lapply(my_list, function(x) ifelse(is.data.frame(x), x[rows,], x[rows]))

Итак, как мне достичь своей цели получения списка подмножеств данных?

1 Ответ

1 голос
/ 12 августа 2011

Я думаю, что это YAIEP (еще одна проблема, если еще).С ?ifelse:

ifelse возвращает значение той же формы, что и тест, заполненное элементами, выбранными из да или нет, в зависимости от того, является ли элемент теста ИСТИНА или ЛОЖЬ.

Видишь беду?Та же форма, что и у теста.

Так что просто сделайте это:

l <- list(a = data.frame(x=1:10,y=1:10),b = 1:10, c = factor(letters[1:20]))

rows <- 1:3

fun <- function(x){
    if (is.data.frame(x)){
        x[rows,]
    }
    else{
        x[rows]
    }
}

lapply(l,fun)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...