目前我有一个包含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)
然而这需要数小时。必须有一个更简单的方法吗?
答案 0 :(得分: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)