我在R中編寫了一個腳本,它合併並修改某些csv數據,然後使用write table()保存結果數據幀。當它保存文件時,它會將當前日期添加到文件的名稱中。結果數據框的第三列始終是國家特定的,所以我想知道是否有辦法在文件名中使用write.table取代國家代碼(第三列的名稱)的國家名稱。根據數據框中第三列的名稱使用write.table()時更改文件名
例如,如果第三列的名稱是「它」,我想使用write.table將「意大利」添加到csv文件的名稱。
我在R中編寫了一個腳本,它合併並修改某些csv數據,然後使用write table()保存結果數據幀。當它保存文件時,它會將當前日期添加到文件的名稱中。結果數據框的第三列始終是國家特定的,所以我想知道是否有辦法在文件名中使用write.table取代國家代碼(第三列的名稱)的國家名稱。根據數據框中第三列的名稱使用write.table()時更改文件名
例如,如果第三列的名稱是「它」,我想使用write.table將「意大利」添加到csv文件的名稱。
將國家名稱和代碼列表導入到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文件名(替換「......」與任何其他標記你想附加到輸出文件名。否則,刪除 「......」)
csv_name <- paste0("...",country, ".csv")
寫下您的數據保存到文件:
你需要write.table(x=yourdata, file=csv_name)
好運:-)
並提出以下地址的答案嗎? – shekeine 2014-10-13 14:52:58