【发布时间】:2019-06-09 21:23:31
【问题描述】:
我需要将一个 CSV 文件分成多个文件,基于 3 列的值:REG、PROV 和 COM(它们是三个级别的领土政治划分)。
我设法根据下面的代码进行了 REG 的拆分,但我不能同时基于三列进行拆分。
#H is the large dataframe containing data for each REG, PROV and COM
H <- read_delim("dataset.csv", ";", escape_double = FALSE, trim_ws = TRUE)
#Get the list of unique REG, PROV and COM names
H$REG <- as.factor(H$REG)
H$PROV <- as.factor(H$PROV)
H$COM <- as.factor(H$COM)
#Check the list of unique REG, PROV and COM names
levels(H$REG)
levels(H$PROV)
levels(H$COM)
#Create csv files for each REG - Splitting by REG values into multiple csv files
for (name in levels(H$REG)){
tmp=subset(H,REG==name)
fn=paste('reg-split/reg_',gsub('','',name), '.csv',sep='')
write.csv(tmp,fn,row.names=FALSE)
}
输出应该是基于具有以下结构的列值的多个文件:reg-{n1}_prov-{n2}_com-{n3}.csv。
数据框示例
"REG","PROV","COM","AMOUNT"
1,11,111,213123
1,11,111,645573
1,12,112,545455
1,12,112,167442
1,13,113,767436
1,13,123,231653
1,13,133,124674
2,21,211,876534
2,21,212,439324
2,21,212,872364
输出
reg-1_prov-11_com-111.csv
reg-1_prov-12_com-112.csv
reg-1_prov-13_com-113.csv
reg-1_prov-13_com-123.csv
reg-1_prov-13_com-133.csv
reg-2_prov-21_com-211.csv
reg-2_prov-21_com-212.csv
【问题讨论】: