Dist数据类型输出:
直接输出dist类型是不行的,要将转化为matrix数据(data.frame数据也不行)
d<-dist(m3) #调用距离函数,默认是欧氏距离dd<-as.matrix(d) %转换成矩阵,因为上面算出来的类别为dist,不能直接写入表格中write.csv(dd,"D:\\work\\data\\d.csv") #写出文件
R读取xls文件方法:
readxl包 可以很方便的读取,且各个系统都通用。如果只是读取的话,无疑是非常方便的方法。
只需要下载readxl包,用read_excel函数读取就可以了,并且同时支持老版本的.xls格式和新版本的.xlsx格式。
#下载和引用 install.packages("readxl") library(readxl) #读取Excel read_excel("old_excel.xls") read_excel("new_excel.xlsx") #sheet参数,指定sheet名或者数字 read_excel("excel.xls",sheet=2) read_excel("excel.xls",sheet="data") # If NAs are represented by something other than blank cells, # set the na argument read_excel("excel.xls", na = “NA") |
XLSX 包
read.xlsx ("file.xlsx")
使用剪贴板
复制内容,然后在R中输入:
read.table("clipboard",header=T)
批量读取:
批量读取数据,有两种形式,读取一个目录下的所有文件,从数据库中读取多个表。
##读取同一目录下的所有文件
path <- "F:/Rfile/OD-B/Data" ##文件目录
fileNames <- dir(path) ##获取该路径下的文件名
filePath <- sapply(fileNames, function(x){
paste(path,x,sep='/')}) ##生成读取文件路径
data <- lapply(filePath, function(x){
read.csv(x, header=T)}) ##读取数据,结果为list
##从数据库中读取数据类似上面,获取要数据库里的文件名,写个正则筛选文件名后for循环读取。
批量输出:
对结果批量输出csv文件,其中data为list格式
outPath <- "F:/Rfile/OD-B/Consequence" ##输出路径
out_fileName <- sapply(names(data),function(x){
paste(x, ".csv", sep='’)} ) ##csv格式
out_filePath <- sapply(out_fileName, function(x){
paste(outPath ,x,sep='/')}) ##输出路径名
##输出文件
for(i in 1:length(data)){
write.csv(data[[i]], file=out_filePath[i], row.name=F)
}
example:
out_fileName<-sapply(1:6,function(x){paste("class",x,".csv",sep="")})
for (i in 1:6){
class.name<-subset(score.chushi,score.chushi[5]==i)
write.csv(class.name,file=out_fileName[i])
}
outfile: class1.csv class2.csv