我有一个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添加到名称的末尾,打败循环的目的。任何建议都会有所帮助!
答案 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
.csv
的代码中尝试使用以下内容
paste