แสดงบทความที่มีป้ายกำกับ csv แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ csv แสดงบทความทั้งหมด

วันศุกร์ที่ 6 พฤศจิกายน พ.ศ. 2558

Convert ไฟล์ csv เป็น matrix (How to convert multiple csv files to matrix in R)


    ใน post ก่อนหน้านี้ ได้ทำการแปลงไฟล์สเป็กตรัมของ OPUS เป็น csv แล้วโดยเป็น x-y table ที่มีข้อมูล ค่า absorbance ที่ wave number  ต่างๆ เมื่อจะเอามาใช้ใน R ก็มักจะนิยมนำข้อมูลเข้ามาอยู่ที่ทำงานได้ง่าย เช่น matrix  ผมได้ลองเขียน script สั้นๆ สำหรับแปลงไฟล์ csv จำนวนหลายๆ ไฟล์เข้ามาเป็น matrix โดยมใช้ choose.files() เข้ามาช่วยในการเลือกไฟล์แบบ interactive ด้วย

csv2matrix <-function(){
    Files <- choose.files()
    nFiles <- length(Files)
    cols <-nrow(read.csv(Files[1],header=FALSE))
    result <-matrix(, nrow=0,ncol=cols)

    for (i in 1:nFiles){
        file <- Files[i]
        data <- read.csv(file, header=FALSE)
        data.m <- matrix(data$V2,nrow=1,ncol=cols,byrow=TRUE)
        result <-rbind(result,data.m)
        colnames(result) <-data$V1
    }
    return(result)
}
   


  

วันพุธที่ 4 พฤศจิกายน พ.ศ. 2558

แปลงไฟล์สเป็กตรัมจากโปรแกรม OPUS เป็น csv (How to convert OPUS NIR spectra files to cvs)



     จากเว็บไซต์ http://biophotonics.lancs.ac.uk/software/macro/ ผมนำ macro มาแก้ไขเพื่อใช้สำหรับแปลงไฟล์สเป็กตรัมจากโปรแกรม OPUS ให้เป็น csv เพื่อให้สามารถนำไปใช้งานในโปรแกรมอื่นๆ เช่น R ได้

ดาวโหลดไฟล์ macro (rar)



     เซฟไฟล์นี้ไว้ในโฟลเดอร์ใดก็ได้ จากนั้นเปิดโปรแกรม OPUS (เวอร์ชั่นที่ใช้คือ 7.0)  ไปที่เมเนู Macro > Run Macro เลือกไฟล์ macro ที่เซฟไว้ดังตัวอย่าง


     เมื่อเปิดไฟล์ macro จะเริ่มทำงานทันทีโดยเห็นหน้า


ให้ใส่ Path เป็นโฟลเดอร์ที่เก็บไฟล์ OPUS และแก้ไขช่อง Name เป็น *.0 (ซึ่งเป็นนามสกุลไฟล์ของ OPUS) และใส่ Path_Destination เป็นโฟลเดอร์ที่ต้องการเก็บไฟล์ที่แปลงแล้ว (ซึ่งอาจเป็นโฟลเดอร์เดียวกับไฟล์เดิมได้) การแปลงไฟล์จะทำทุกๆ ไฟล์ที่นามสกุล *.0 ในโฟลเดอร์ที่ระบุ จากนั้นกดปุ่ม Continue เพื่อแปลงไฟล์ซึ่งเวลาที่ใช้ก็ขึ้นอยู่กับจำนวนไฟล์ เมื่อแปลงไฟล์เสร็จเราจะได้ไฟล์ดังตัวอย่าง


บน R console
> file <-file.choose()
> data <- read.csv(file,header=FALSE)
> plot(data,type="l")