2013-06-10 3 views
-1

У меня есть список data.frames. Предположим, что список состоит из 10 data.frames. Я хотел бы сначала переименовать каждый список data.frames в соответствии со списком имен, хранящихся в другом файле. Во-вторых, предположим, что data.frames называется «Pippo», а «Pippo» - это элемент data.frame. Я хотел бы Подмножество следующим образом:подмножество из списка data.frames

Предположим, что это data.frame назвали «Пиппо» из списка data.frames:

Name Sample1 Sample2 Sample3 Sample4 
John  1   0  -3  -7  
Michael 0   4  2  21  
Pippo  1   1  23  0  

Я хотел бы подмножество всех элементы в соответствии с "Пиппо" значение == 1, так что на выходе будет:

Name Sample1 Sample2 
John  1   0  
Michael 0   4  
Pippo  1   1   

Это будет сделано для всех имен списка data.frames, поскольку каждое имя является элементом data.frame.

Может ли кто-нибудь мне помочь?

Заранее спасибо.

Бест,

F.

+0

Просто для уточнения: являются 'John',' 'Michael', Пиппо 'ваши имена rownames data.frame или они являются столбцом в вашем data.frame? Мой ответ принял первый. – flodel

+0

привет flodel! Это столбец в data.frames. – Fuv8

ответ

3

Пусть ldf будет ваш список dataframes. Вы можете изменить имена в списке, используя:

names(ldf) <- v 

где v вектор характер.

Для второй стадии (Подменю), это должно работать:

subset.ldf <- mapply(ldf, names(ldf), 
        function(x, name) x[, x[name, ] == 1, drop = FALSE]) 
2

или вектор решения на основе:

d = data.frame(name=c('john','michael','pippo'), sample1 = c(1,0,1), 
      sample2 = c(0,4,1), sample3 = c(-3,2,23), sample4 = c(-7,21,0)) 

sel = d[d$name == 'pippo',2:5]; sel = c(TRUE, sel == 1) 
d[,sel] 
Смежные вопросы