r-将csv文件划分为四个不同的文件

  • 本文关键字:文件 四个 csv 划分 r csv
  • 更新时间 :
  • 英文 :


我有一个数据集dataset.csv和一个数组v,它们具有相同的行数。数据集示例:

1   1   1   2   3
2   2   1   2   3
3   1   1   1   1
4   2   2   2   1
5   2   2   3   2
6   1   2   3   2
7   2   1   2   2
8   1   1   3   2
9   1   1   3   3

阵列v:示例

1
4
2
3
3
1
2
1
4

我想根据数组v将文件dataset.csv划分为四个cvs文件。例如,v[1]=1,这意味着文件dataset-1.csv中的dataset.csv的第一行;v[2]=4这意味着dataset.csv的第二行进入文件dataset-4.csv等等

换句话说,我们有四个文件,dataset-1.csv:

1   1   1   2   3
6   1   2   3   2
8   1   1   3   2

dataset-2.csv:

3   1   1   1   1
7   2   1   2   2

dataset-3.csv:

4   2   2   2   1
5   2   2   3   2

dataset-4.csv:

2   2   1   2   3
9   1   1   3   3

有什么想法吗?

使用split

out <- split(df1, v)
out
#$`1`
#  V1 V2 V3 V4 V5
#1  1  1  1  2  3
#6  6  1  2  3  2
#8  8  1  1  3  2
#$`2`
#  V1 V2 V3 V4 V5
#3  3  1  1  1  1
#7  7  2  1  2  2
#$`3`
#  V1 V2 V3 V4 V5
#4  4  2  2  2  1
#5  5  2  2  3  2
#$`4`
#  V1 V2 V3 V4 V5
#2  2  2  1  2  3
#9  9  1  1  3  3

您可以使用Mapwrite.csv保存所有四个文件

path <- "path/to/file/"
Map(write.csv, x = out, file = paste0(path, "dataset-", names(out), ".csv"))

数据

df1 <- read.table(text = "1   1   1   2   3
2   2   1   2   3
3   1   1   1   1
4   2   2   2   1
5   2   2   3   2
6   1   2   3   2
7   2   1   2   2
8   1   1   3   2
9   1   1   3   3", header = FALSE)

相关内容

最新更新