2013-04-06 84 views
2

目前我有一個18列的數據框。我想根據數據框中其他六列中數據的組合將這些列中的數據進行「呈現」,然後將其保存到文本文件中。 我想使用子集「禮物」的列有:基於許多條件的數據框的多個子集

*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

那偉大工程,謝謝! – 2013-04-07 10:10:22

相關問題