2014-02-26 51 views
0

我有一个CSV文件如何分隔CSV文件的列中的字符串并写入R中的另一个CSV文件?

Market,CampaignName 
Wells Fargo,Gary IN MetroChicago IL Metro 
EMC,Los Angeles CA MetroBoston MA Metro 
Apple,Cupertino CA Metro 

使用的部分码是

library(stringr) 
xx.to.split <- with(xx, setNames(gsub("Metro", "", as.character(CampaignName)), Market)) 
do.call(rbind, str_match_all(xx.to.split, "(.+?) ([A-Z]{2}) ?"))[, -1] 

输出是

       [,1]   [,2] 
        Wells Fargo "Gary"  "IN" 
        Wells Fargo "Chicago"  "IL" 
        EMC   "Los Angeles" "CA" 
        EMC   "Boston"  "MA" 
        Apple  "Cupertino" "CA" 

和所需输出到CSV与第一行作为文件标题

Market,City,State 
Wells Fargo,Gary,IN 
Wells Fargo,Chicago,IL 
EMC,Los Angeles,CA 
EMC,Boston,MA 
Apple,Cupertino,CA 

如何将输出写入R中的CSV文件? R的新功能

+2

write.csv(数据, “data.csv”) – jenesaisquoi

+0

这个问题是[这个问题]的结果(http://stackoverflow.com/questions/22030262/how-to-separate-the-variables-of-a-particular-column-in-a-csv-file-and-write-to)。通过'help(write.csv)'查看'write.csv'。 –

+0

@BlueMagister:如何在所需输出中指定标题?我已经明确指出了我所期望的结果和结果。 – user3188390

回答

0

很难说明你到底在干什么。也许最好的情况是自己写头,然后写入你有的矩阵。如果你的对象是一个矩阵m

ff <- file("filename.csv", open = "wt") 
writeLines("Market,City,State", con = ff) 
write.table(m, file = ff, sep = ",", row.names = TRUE, 
    col.names = FALSE, quote = FALSE) 
close(ff) 

生成的文件是这样的:

Market,City,State 
Wells Fargo,Gary,IN 
Wells Fargo,Chicago,IL 
EMC,Los Angeles,CA 
EMC,Boston,MA 
Apple,Cupertino,CA 
+0

“市场”的第一列从未真正显示在CSV文件中?如何向CSv文件写入'市场'栏目? – user3188390

+0

应该使用'row.names = TRUE'来处理。我编辑了我的答案,以显示生成的文件对我而言的样子。如果这不适合你,请通过编辑你的问题告诉我你得到了什么。 –

相关问题