2013-04-06 2 views
2

В настоящее время у меня есть блок данных с восемью столбцами. Я хотел бы подмножество данных в одном из этих столбцов «присутствовать» в соответствии с комбинациями данных в шести из других столбцов в кадре данных, а затем сохранить их в текстовый файл. Столбцов Я хотел бы использовать, чтобы подмножество «настоящий» являются:Множественное подмножество кадра данных на основе многих условий

*answer (1:4) [answer takes values 1 to 4] 
*p.num (1:18) 
*session (1:2) 
*count (1:8) 
*type (1:3) 

Так есть 3456 возможных комбинации Подменят.

В настоящее время я использую следующее и вручную изменяю значения в каждой строке и повторно запускаю код.

input<-subset(input, answer==1) 
input.s2g<-subset(input, p.num == 1) 
input.s2g<-subset(input.s2g, session == "S2") 
input.s2g<-subset(input.s2g, count==8) 
input.s2g<-subset(input.s2g, type==1) 

write.table(s2g, file = "1_1_S2_8_1", sep = "\t", col.names = F, row.names = F) 

Все это занимает часы. Должен быть более простой способ?

ответ

3

Я хотел бы попробовать что-то вдоль этих линий:

splitted <- split(input, list(input$answer, 
           input$p.num, 
           input$session, 
           input$count, 
           input$type)) 

filenames <- gsub("\\.", "_", names(splitted)) 

mapply(write.table, splitted, file = filenames, sep = "\t", 
        col.names = FALSE, row.names = FALSE) 
+0

Это прекрасно работает, спасибо! –

Смежные вопросы