r function" write.csv"没有附加文件扩展名

时间:2017-03-10 21:41:07

标签: r csv

我有一个for循环,它运行我所在地区每个人口普查区的汇总统计信息,我需要将它们作为csv文件输出到文件夹中。循环工作但输出文件的类型为" file"。

我还希望将所有所述文件合并到一个数据框中,以便我有一个文件,其中包含所有人口普查区的摘要统计信息。我找到了一个"多合并"功能,但它没有正常工作,我认为这与我的文件类型不是csv的事实有关。我的代码块如下:

########################################################################################
## create tables with summary statistic's###############################################
########################################################################################

setwd("C:/Data/nih/data/output/csv/merge")            #choose destination folder

for (result in esc.micro@results){
  print(as.character(result$areaid))                  #print each file name into console as script runs
  census.name <- as.character(result$areaid)          #derive census tract from area ID

  #create table for each census tract using summary statistics
  table.unique <- c(mean(result$selection$BMI, na.rm = TRUE),sum(result$selection$female), sum(result$selection$male), 
                   sum(result$selection$diabet),sum(result$selection$white), sum(result$selection$black),
                   sum(result$selection$indian), sum(result$selection$asian), sum(result$selection$pacific),
                   sum(result$selection$other), sum(result$selection$mixed))
  table.unique <- c(census.name,table.unique)         #combine census tract as column to summary stats
  col.names <- c("areaID","BMI","female","male","diabet","white","black","indian","asian","pacific","other","mixed")
  table.unique <- as.numeric(table.unique)   
  table.unique <-as.data.frame(t(table.unique))       #turn comlums into rows
  names(table.unique) <- col.names                    #add column names
  write.csv(table.unique, file = census.name)         #write csv to output folder
}

#merge all files into single data frame

multmerge = function(mypath){
  filenames=list.files(path=mypath, full.names=TRUE)
  datalist = lapply(filenames, function(x){read.csv(file=x,header=TRUE)})
  Reduce(function(x,y) {merge(x,y)}, datalist)
}

all.tracts <- multmerge("C:/Data/nih/data/output/csv/merge")

代码的工作原理是它将文件输出到输出文件夹,在excel中打开时它们以逗号分隔,但唯一的方法是手动将.csv添加到名称的末尾,打败循环的目的。任何建议都会有所帮助!

2 个答案:

答案 0 :(得分:1)

您正在编写的文件将被格式化为.csv,但没有扩展名。

要获得扩展程序,您需要将".csv"粘贴到file =的{​​{1}}参数

特别是:

write.csv

必须更改为:

write.csv(table.unique, file = census.name)

此代码将在write.csv(table.unique, file = paste(census.name, ".csv", sep = ''))字符串中包含.csv扩展名:

census.name

答案 1 :(得分:1)

var spojeni1 = [1, 1, 2, 3, 4, 4] // Here it is values 2,3 var NewArray = [Int]() for i in spojeni1 { if { // the value hasn't another identical value in the array NewArray.append(i) } } 不会自动将扩展名添加到您保存的文件中。您需要自己提供完整的文件名(或文件路径,如果您愿意)。

在我们使用write.csv

向census.name添加.csv的代码中尝试使用以下内容
paste