【发布时间】:2017-09-04 02:05:55
【问题描述】:
我有一个包含 20 个城市的大型数据集,我想将其拆分为每个城市的较小数据集。数据集中的每个变量都将导出到一个文本文件中。
foreach i in Denver Blacksburg {
use "D:\Data\All\AggregatedCount.dta", clear
drop if MetroArea != `i'
export delimited lnbike using "D:\Data/`"`i'"'/DV/lnbike.txt", delimiter(tab) replace
export delimited lnped using "D:\Data/`"`i'"'/DV/lnped.txt", delimiter(tab) replace
}
我在导出命令中尝试了i' and"`i'"',但它们都不起作用。错误是
“未找到丹佛。”
我也有一些城市之间有空间,比如洛杉矶。我试过了
local city `" "Blacksburg" "Los Angeles" "Denver" "'
foreach i of city {
use "D:\Data\All\AggregatedCount.dta", clear
drop if MetroArea != `i'
export delimited lnbike using "D:/Data/`"`i'"'/DV/lnbike.txt", delimiter(tab) replace
export delimited lnped using "D:/Data/`"`i'"'/DV/lnped.txt", delimiter(tab) replace
}
这也不起作用。你有什么建议吗?
【问题讨论】:
-
感谢@Hack-R。你有什么建议可以在 R 中解决这个问题吗?
-
Eric HB 在下面的回答中帮助了我使用 Stata,我也有兴趣了解 R 中的解决方案。
-
当然,抱歉,我现在才回到我的笔记本电脑上。那么,您想为因子变量(每个城市)的每个级别保存一个单独的文件,对吗?
for(l in levels(iris$Species){data.table::fwrite(iris[iris$Species==l,],paste0(l,".csv"))}您也可以使用write.csv()代替fwrite,这样您就不需要库,但fwrite更快。