ใช้ .net ใน CRAN สำหรับ Windows

ใครที่อยากใช้โปรแกรมที่เขียนขึ้นเองในภาษาอื่นใน R package มันก็มีหลายวิธีครับขึ้นกับว่าเราจะเขียน wrap function มันอย่างไรแต่ถ้าคิดจะเอาไปไว้ CRAN ก็คงต้องคิดหนักหน่อยเพราะ CRAN เน้นว่าโปรแกรมอื่นที่เขียนจากภาษาอื่นมานั้นต้อง compile จาก source เท่านั้นเวลาที่มีการติดตั้ง และตัว CRAN หรือ R เองก็ไม่ค่อยถูกกับฝั่ง .net ด้วยสินั่นหมายความว่าต้องใช้ compiler อย่าง gnu gcc เท่านั้น แต่มันก็พอมีวิธีครับถ้าอยากจะเอาโปรแกรมที่เขียนหรือcompiled มาแล้วจาก .net มาใช้งาน พร้อมกับส่งไปที่ CRAN ได้และผมก็เห็นหลาย package ทำกันอย่างเช่น

https://github.com/jeroen/curl/blob/7fd8d483e5a9d9fd4716d123a855cbb2e0c17b05/tools/winlibs.R

# Build against static libraries from rwinlib
if(!file.exists("../windows/libcurl-7.51.0/include/curl/curl.h")){
 if(getRversion() < "3.3.0") setInternet2()
 download.file("https://github.com/rwinlib/libcurl/archive/v7.51.0.zip", "lib.zip", quiet = TRUE)
 dir.create("../windows", showWarnings = FALSE)
 unzip("lib.zip", exdir = "../windows")
 unlink("lib.zip")
}

อันนี้เค้ามีprebuild มาเรียบร้อยแล้ว เวลาที่ติดตั้งก็ให้มันไปโหลดมาลงเลย

ผมเองก็เขียน r packages บนวินโดว์อยู่หลายตัวสำหรับใช้ที่ทำงานครับ ไอเดียก็ทำคล้ายๆกัน แต่ทั้งหมดไม่เคยได้ส่งไป CRAN สักที และส่วนมากผมจะใส่ไว้ใน folder อย่าง ints  เวลาที่สร้างpackageครับ ที่หลังจากติดจั้งแล้วมันจะสร้าง folder แยกไว้ให้เลย

 

Leave a Reply

%d bloggers like this: