我想编写一个循环,以从大型数据帧(总共包含48列)创建数据子集,该数据集也可以自动将这些子集写到.txt文件中。我将首先描述每个文件中要实现的结构:
- 前9列应按原样打印在从主文件创建的每个子集中。这些对于创建的所有文件都是必需的。每个子集共有11列。
- 第10列和第11列是每个子集中将要更改的内容。循环应遍历原始数据帧中的其余39列,并以所有可能的方式将它们合并。因此,如果原始数据集中的列名称为AA,BB,CC,DD,EE,则子集数据的一些示例组合为:
(前9列)AA BB
(前9列)AA CC
(前9列)AA DD
(前9列)AA EE
- 应根据第10列和第11列的名称写出文件。因此,循环创建的文件将是:
AAxBB.txt
AAxCC.txt
AAxDD.txt
AAxEE.txt
我以前曾尝试编写使用列名的循环,但对我来说结果并不理想。有关我如何编写代码的示例,请参见previous question。我想知道的是如何潜在地两次使用列名作为变量,以便按我的意愿写出文件。那可能吗?索引系统会更好吗?非常感谢您的协助!
这是我到目前为止正在做的事情:
for (i in colnames(data)){
for (j in colnames(data){
subset = subset(data,select = c("1","2","3","4","5","6","7","8","9","print(i)","print(j)"
write.table(subsetprint(i)&print("x")&print(j),file ="print(i)&print("x")&print(j)",quote = F,row.names = F,col.names = F,sep = " ",na = "-999")
}
}