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)

然而,这需要几个小时。一定有更简单的方法吗?

4

1 回答 1

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)
于 2013-04-06T22:56:57.347 回答