มิกกี้เม้าส์ใน R

วาด Mickey mouse ใน R

library(showtext)
library(ggplot2)

font_add("TH Mali Grade 6", 
"PATH_to_/TH Mali Grade6.ttf")

showtext_auto()
# Define the functions for x(t) and y(t)
x_func <- function(t) {
  -119/9 * sin(1/10 - 25 * t) - 945/43 * sin(5/11 - 23 * t) - 501/8 * sin(1/47 - 10 * t) - 
    801/20 * sin(13/10 - 8 * t) - 607/10 * sin(7/10 - 7 * t) - 1975/9 * sin(3/7 - 2 * t) + 
    4655/8 * sin(t + 29/10) + 773/7 * sin(3 * t + 76/17) + 1138/9 * sin(4 * t + 1/3) + 
    619/4 * sin(5 * t + 5/8) + 3355/26 * sin(6 * t + 13/10) + 595/9 * sin(9 * t + 28/11) + 
    905/9 * sin(11 * t + 40/11) + 149/10 * sin(12 * t + 7/11) + 153/5 * sin(13 * t + 2) + 
    127/8 * sin(14 * t + 13/6) + 225/8 * sin(15 * t + 3/2) + 49/4 * sin(16 * t + 25/7) + 
    133/9 * sin(17 * t + 15/8) + 301/15 * sin(18 * t + 31/9) + 232/7 * sin(19 * t + 11/7) + 
    438/19 * sin(20 * t + 10/7) + 67/3 * sin(21 * t + 19/10) + 114/11 * sin(22 * t + 38/37) + 
    153/11 * sin(24 * t + 10/9) + 153/8 * sin(26 * t + 11/12) + 443/34 * sin(27 * t + 23/14) + 
    39/7 * sin(28 * t + 45/11) + 32/3 * sin(29 * t + 4/11) + 110/13 * sin(30 * t + 3/8) + 
    41/7 * sin(31 * t + 70/23) + 39/7 * sin(32 * t + 13/9)
}

y_func <- function(t) {
  -86/19 * sin(6/7 - 30 * t) - 89/8 * sin(2/3 - 29 * t) - 687/49 * sin(4/9 - 24 * t) - 
    294/11 * sin(11/8 - 20 * t) - 135/4 * sin(10/11 - 17 * t) - 71/7 * sin(1/6 - 15 * t) - 
    226/5 * sin(3/8 - 14 * t) - 295/8 * sin(1/8 - 11 * t) - 220/7 * sin(17/16 - 10 * t) - 
    708/7 * sin(1/6 - 9 * t) - 2017/8 * sin(5/4 - 2 * t) - 1240/3 * sin(11/10 - t) + 
    104/15 * sin(18 * t) + 2216/7 * sin(3 * t + 39/11) + 601/3 * sin(4 * t + 18/11) + 
    468/11 * sin(5 * t + 34/11) + 127/7 * sin(6 * t + 27/7) + 457/8 * sin(7 * t + 25/6) + 
    201/4 * sin(8 * t + 23/7) + 71/3 * sin(12 * t + 4/7) + 340/7 * sin(13 * t + 39/11) + 
    216/7 * sin(16 * t + 27/13) + 31/5 * sin(19 * t + 24/25) + 8/5 * sin(21 * t + 1/7) + 
    217/11 * sin(22 * t + 23/14) + 34/3 * sin(23 * t + 19/8) + 157/9 * sin(25 * t + 3/10) + 
    69/4 * sin(26 * t + 2/3) + 29/5 * sin(27 * t + 15/7) + 58/7 * sin(28 * t + 29/8) + 
    95/11 * sin(31 * t + 19/8) + 34/9 * sin(32 * t + 40/9)
}

# Generate values
t_values <- seq(0, 2 * pi, length.out = 1000)
x_values <- sapply(t_values, x_func)
y_values <- sapply(t_values, y_func)

df <- data.frame(t = t_values, x = x_values, y = y_values)

# Plot using ggplot2
p <- ggplot(df, aes(x = x, y = y)) + 
  geom_path(color = "black", size = 1) + 
  theme_minimal() + 
  geom_text(aes(x = 500, y = 800, label = "กลุ่มผู้ใช้ R"), 
            family = "TH Mali Grade 6", color = "black", size = 26)

print(p)

เรียน R Shiny

สำหรับผู้ที่สนใจจะพัฒนาเว็บและแอปใน R ด้วย Shiny ครับ เนื้อหาที่ผมสอนใน workshop ซึ่งเป็นภาษาไทย ได้ถูกเผยแพร่ไว้ที่นี่ Shiny เบื้องต้น (ammnet-thailand.github.io) ครับ

ปัญหา Path ของ Rtools

rtools มันจำเป็นสำหรับ r package ที่มี code จากภาษาอื่น อย่าง c/c++ หรือ fortran ในที่จะต้องมีการ compile ระหว่างการติดตั้ง โดยปกติแล้วมัน จะถูกลงไว้ที่

PATH="C:\Rtools\bin;${PATH}" 

ถ้าลงไว้ที่อื่นและต้องการเรียกใช้ใน R ตัวแปรชื่อ BINPREF จะเป็นตัวแปรที่ R จะเรียกหา path ของ rtools ฉะนั้นถ้าจะเรียกใช้ rtools ที่ลงไว้ที่อื่นก็ต้องเซ็ต path ให้กับตัวแปรนี้ เช่น

BINPREF="X:/R/Rtools-3.5/mingw_$(WIN)/bin/" 

** สังเกตว่า BINPREF ใช้ forward slash นะครับ

%d bloggers like this: