根据数据框中第三列的名称使用write.table()时更改文件名

时间:2014-10-10 09:41:06

标签: r

我在R中编写了一个脚本,它合并并修改了一些csv数据,然后使用write table()保存结果数据帧。保存文件时,它会将当前日期添加到文件名中。结果数据框的第三列始终是特定于国家/地区的,因此我想知道是否有一种方法可以使用write.table在文件名中包含国家名称,具体取决于国家/地区代码(第三列的名称)。

例如,如果第三列的名称是"它",我想添加"意大利"使用write.table。来获取csv文件的名称。

1 个答案:

答案 0 :(得分:1)

将国家/地区名称和代码列表导入R :( 在脚本的最顶端执行此操作是明智的:在处理循环之外,因此您不会为每个数据集反复读取数据写出.csv。其余的代码就在你当前的write.table命令之前

library(RCurl)
csv_src <- getURL("https://raw.githubusercontent.com/umpirsky/country-list/master/country/cldr/en/country.csv")

world <- read.csv(text=csv_src, header=T)`

使用国家/地区代码获取数据中第三列的名称:

countrycode <- colnames(yourdata)[3]

提取相应的国家/地区名称:

country_idx <- grep(pattern=countrycode, x=world$iso, ignore.case = TRUE)

country <- world$name[country_idx]

将国家/地区名称附加到csv文件名(替换&#34; ...&#34;以及您想要附加到输出文件名的其他任何标记。否则删除&#34; ...&#34;

csv_name <- paste0("...",country, ".csv") 

将您的数据写入文件:

write.table(x=yourdata, file=csv_name)
祝你好运: - )