การทำงานกับวันที่ใน R (ความสามารถพื้นฐาน รวมถึงแพ็คเกจ lubridate และระยะเวลา R)

รับวันที่ปัจจุบันในภาษาการเขียนโปรแกรมใดๆ การดำเนินการเทียบเท่ากับ "Hello world!" ภาษา R ก็ไม่มีข้อยกเว้น

ในบทความนี้ เราจะมาดูกันว่าการทำงานกับวันที่ทำงานอย่างไรในไวยากรณ์พื้นฐานของภาษา R และยังดูแพ็คเกจที่มีประโยชน์หลายอย่างที่ขยายขีดความสามารถเมื่อทำงานกับวันที่:

  • lubridate — แพ็คเกจที่ให้คุณคำนวณทางคณิตศาสตร์ระหว่างวันที่
  • timeperiodsR — แพ็คเกจสำหรับการทำงานกับช่วงเวลาและส่วนประกอบต่างๆ

การทำงานกับวันที่ใน R (ความสามารถพื้นฐาน รวมถึงแพ็คเกจ lubridate และระยะเวลา R)

Содержание

หากคุณสนใจในการวิเคราะห์ข้อมูล และโดยเฉพาะภาษา R คุณอาจจะสนใจของฉัน โทรเลข и YouTube ช่อง. เนื้อหาส่วนใหญ่เน้นไปที่ภาษา R

  1. การทำงานกับวันที่ในรูปแบบ R พื้นฐาน
    1.1. แปลงข้อความให้เป็นวันที่
    1.2. แยกส่วนประกอบวันที่ใน R พื้นฐาน
  2. การทำงานกับวันที่โดยใช้แพ็คเกจหล่อลื่น
    2.1. แปลงข้อความเป็นวันที่โดยใช้ lubridate
    2.2. การแยกส่วนประกอบวันที่โดยใช้แพ็คเกจ lubridate
    2.3. การดำเนินการทางคณิตศาสตร์พร้อมวันที่
  3. ลดความซับซ้อนของการทำงานด้วยช่วงเวลา ช่วงเวลาแพ็คเกจ R
    3.1. ช่วงเวลาในช่วงเวลาR
    3.2. การกรองเวกเตอร์ของวันที่โดยใช้ช่วงเวลา R
  4. ข้อสรุป

การทำงานกับวันที่ในรูปแบบ R พื้นฐาน

แปลงข้อความให้เป็นวันที่

Basic R มีชุดฟังก์ชันสำหรับการทำงานกับวันที่ ข้อเสียของไวยากรณ์พื้นฐานคือกรณีของชื่อฟังก์ชันและอาร์กิวเมนต์กระจัดกระจายมากและไม่มีการเชื่อมต่อเชิงตรรกะในทางปฏิบัติ อย่างไรก็ตาม คุณจำเป็นต้องรู้ฟังก์ชันพื้นฐานของภาษา ดังนั้นเราจะมาเริ่มกันที่ฟังก์ชันเหล่านี้

บ่อยครั้งเมื่อโหลดข้อมูลลงใน R จากไฟล์ csv หรือแหล่งอื่นๆ คุณจะได้รับวันที่เป็นข้อความ หากต้องการแปลงข้อความนี้เป็นประเภทข้อมูลที่ถูกต้อง ให้ใช้ฟังก์ชัน as.Date().

# создаём текстовый вектор с датами
my_dates <- c("2019-09-01", "2019-09-10", "2019-09-23")

# проверяем тип данных
class(my_dates)

#> [1] "character"

# преобразуем текст в дату
my_dates <- as.Date(my_dates)

# проверяем тип данных
class(my_dates)

#> [1] "Date"

Поумолчанию as.Date() ยอมรับวันที่ในสองรูปแบบ: ปปปป-ดด-วว หรือ ปปปป/ดด/วว.
หากชุดข้อมูลของคุณมีวันที่ในรูปแบบอื่น คุณสามารถใช้อาร์กิวเมนต์ได้ format.

as.Date("September 26, 2019", format = "%B %d, %Y")

รูป ยอมรับตัวดำเนินการในรูปแบบสตริงซึ่งแสดงถึงช่วงเวลาและรูปแบบ ค่าที่ใช้บ่อยที่สุดแสดงอยู่ในตารางด้านล่าง:

รูป
ลักษณะ

%d
หมายเลขวันในเดือน

%a
ตัวย่อของชื่อวันในสัปดาห์

%A
ชื่อเต็มของวันในสัปดาห์

%w
ตัวเลขของวันในสัปดาห์ (0-6 โดยที่ 0 คือวันอาทิตย์)

%m
การกำหนดเดือนด้วยตัวเลขสองหลัก (01-12)

%b
ชื่อย่อของเดือน (เม.ย., มี.ค., …)

%B
ชื่อเดือนเต็ม

%y
การกำหนดปีด้วยตัวเลขสองหลัก

%Y
การกำหนดปีเป็นตัวเลขสี่หลัก

%j
หมายเลขวันในปี (001 - 366)

%U
จำนวนสัปดาห์ในปี (00 - 53) ต้นสัปดาห์วันอาทิตย์

%W
หมายเลขสัปดาห์ในปี (00 - 53) ต้นสัปดาห์วันจันทร์

ดังนั้น “26 กันยายน 2019” จึงเป็นชื่อเต็มของเดือน วัน และปี รูปแบบวันที่นี้สามารถอธิบายได้โดยใช้ตัวดำเนินการดังนี้:"%B %d, %Y".

ที่ไหน:

  • %B - ชื่อเต็มของเดือน
  • %d - จำนวนวันในเดือน
  • %Y – การกำหนดปีเป็นตัวเลขสี่หลัก

เมื่ออธิบายรูปแบบวันที่ สิ่งสำคัญคือต้องรวมอักขระเพิ่มเติมจากสตริงของคุณ เช่น ขีดกลาง จุลภาค จุด ช่องว่าง และอื่นๆ ในตัวอย่างของฉัน “26 กันยายน 2019” มีเครื่องหมายจุลภาคหลังวันที่ และคุณต้องใส่เครื่องหมายจุลภาคในคำอธิบายรูปแบบด้วย:"%B %d, %Y".

มีสถานการณ์ที่คุณได้รับวันที่ไม่เพียงแต่ไม่สอดคล้องกับรูปแบบมาตรฐานเท่านั้น (ปปปป-ดด-วว หรือ ปปปป/ดด/วว)แต่ยังเป็นภาษาที่แตกต่างจากภาษาเริ่มต้นที่ติดตั้งบนระบบปฏิบัติการของคุณด้วย ตัวอย่างเช่น คุณดาวน์โหลดข้อมูลที่ระบุวันที่ดังนี้: “15 ธันวาคม 2019” ก่อนที่จะแปลงสตริงนี้เป็นวันที่ คุณต้องเปลี่ยนภาษาก่อน

# Меняем локаль
Sys.setlocale("LC_TIME", "Russian")
# Конвертируем строку в дату
as.Date("Декабрь 15, 2019 г.", format = "%B %d, %Y")

แยกส่วนประกอบวันที่ใน R พื้นฐาน

ไม่มีฟังก์ชันมากมายใน R พื้นฐานที่ให้คุณแยกส่วนใดๆ ของวันที่ออกจากคลาสอ็อบเจ็กต์ได้ วันที่.

current_date <- Sys.Date() # текущая дата
weekdays(current_date)     # получить номер дня недели
months(current_date)       # получить номер месяца в году
quarters(current_date)     # получить номер квартала в году

นอกเหนือจากคลาสอ็อบเจ็กต์หลักแล้ว วันที่ ใน R พื้นฐานมีข้อมูลอีก 2 ประเภทที่เก็บการประทับเวลา: POSIXlt, POSIXct. ความแตกต่างที่สำคัญระหว่างคลาสเหล่านี้กับ วันที่ คือนอกเหนือจากวันที่เก็บเวลาแล้ว

# получить текущую дату и время
current_time <- Sys.time()

# узнать класс объекта current_time 
class(current_time)

# "POSIXct" "POSIXt"

ฟังก์ชัน Sys.time() ส่งคืนวันที่และเวลาปัจจุบันในรูปแบบ POSIXct. รูปแบบนี้มีความหมายคล้ายกับ ยูนิกซ์ไทม์และเก็บจำนวนวินาทีตั้งแต่เริ่มต้นยุค UNIX (เที่ยงคืน (UTC) ตั้งแต่วันที่ 31 ธันวาคม 1969 ถึงวันที่ 1 มกราคม 1970).

ชั้นเรียน POSIXlt นอกจากนี้ยังจัดเก็บเวลาและวันที่และส่วนประกอบทั้งหมดอีกด้วย ดังนั้นจึงเป็นวัตถุที่มีโครงสร้างที่ซับซ้อนกว่า แต่ก็ง่ายต่อการรับส่วนประกอบวันที่และเวลาเนื่องจาก ในความเป็นจริง POSIXlt มัน รายการ.

# Получаем текущую дату и время
current_time_ct <- Sys.time()

# Преобразуем в формат POSIXlt
current_time_lt <- as.POSIXlt(current_time_ct)

# извлекаем компоненты даты и времени
current_time_lt$sec   # секунды
current_time_lt$min   # минуты
current_time_lt$hour  # часы
current_time_lt$mday  # день месяца
current_time_lt$mon   # месяц
current_time_lt$year  # год
current_time_lt$wday  # день недели
current_time_lt$yday  # день года
current_time_lt$zone  # часовой пояс

การแปลงข้อมูลตัวเลขและข้อความเป็นรูปแบบ จุดบวก* ดำเนินการโดยหน้าที่ as.POSIXct() и as.POSIXlt(). ฟังก์ชันเหล่านี้มีอาร์กิวเมนต์ชุดเล็กๆ

  • x — ตัวเลข สตริง หรืออ็อบเจ็กต์คลาส วันที่ซึ่งจำเป็นต้องแปลง
  • tz — เขตเวลา ค่าเริ่มต้น "GMT";
  • รูปแบบ — คำอธิบายของรูปแบบวันที่ซึ่งข้อมูลที่ส่งผ่านไปยังอาร์กิวเมนต์ x จะถูกแสดง
  • origin — ใช้เมื่อแปลงตัวเลขเป็น POSIX เท่านั้น คุณต้องส่งวัตถุวันที่และเวลาที่นับวินาทีเป็นอาร์กิวเมนต์นี้ โดยทั่วไปใช้สำหรับการแปลจาก UNIXTIME

หากข้อมูลวันที่และเวลาของคุณเข้า ยูนิกซ์ไทม์จากนั้นหากต้องการแปลงให้เป็นวันที่ที่ชัดเจนและอ่านง่าย ให้ใช้ตัวอย่างต่อไปนี้:

# Конвертируем UNIXTIME в читаемую дату 
as.POSIXlt(1570084639,  origin = "1970-01-01")

ใน Origin คุณสามารถระบุการประทับเวลาใดก็ได้ ตัวอย่างเช่น หากข้อมูลของคุณมีวันที่และเวลาเป็นจำนวนวินาทีตั้งแต่วันที่ 15 กันยายน 2019 เวลา 12:15 น. หากต้องการแปลงเป็นวันที่ให้ใช้:

# Конвертируем UNIXTIME в дату учитывая что начало отсчёта 15 сентября 2019 12:15
as.POSIXlt(1546123,  origin = "2019-09-15 12:15:00")

การทำงานกับวันที่โดยใช้แพ็คเกจหล่อลื่น

lubridate อาจเป็นแพ็คเกจยอดนิยมสำหรับการทำงานกับวันที่ในภาษา R มันมีคลาสเพิ่มเติมสามคลาสให้คุณ

  • ระยะเวลา — ระยะเวลาเช่น จำนวนวินาทีระหว่างการประทับเวลาสองครั้ง
  • ระยะเวลา - ระยะเวลาช่วยให้คุณสามารถคำนวณระหว่างวันที่ในช่วงเวลาที่มนุษย์สามารถอ่านได้: วัน, เดือน, สัปดาห์และอื่น ๆ
  • ช่วงเวลา - วัตถุที่ให้จุดเริ่มต้นและจุดสิ้นสุดของเวลา

การติดตั้งแพ็คเกจเพิ่มเติมในภาษา R ดำเนินการโดยใช้ฟังก์ชันมาตรฐาน install.packages().

กำลังติดตั้งแพ็คเกจ lubridate:

install.packages("lubridate")

แปลงข้อความเป็นวันที่โดยใช้ lubridate

คุณสมบัติแพ็คเกจ lubridate ลดความซับซ้อนของกระบวนการแปลงข้อความเป็นวันที่ลงอย่างมากและยังช่วยให้คุณดำเนินการทางคณิตศาสตร์ด้วยวันที่และเวลาได้อีกด้วย

ฟังก์ชั่นจะช่วยให้คุณได้รับวันที่หรือวันที่และเวลาปัจจุบัน today() и now().

today() # текущая дата
now()   # текущая дата и время

ในการแปลงสตริงเป็นวันที่ใน lubridate มีฟังก์ชันทั้งตระกูลที่ชื่อประกอบด้วยตัวอักษรสามตัวเสมอ และระบุลำดับของส่วนประกอบวันที่:

  • ย - ปี
  • ม. - เดือน
  • ดีเดย์

รายการฟังก์ชันสำหรับการแปลงข้อความเป็นวันที่ผ่าน lubridate

  • ymd()
  • ydm()
  • mdy()
  • myd()
  • dmy()
  • dym()
  • yq()

ตัวอย่างบางส่วนสำหรับการแปลงสตริงเป็นวันที่:

ymd("2017 jan 21")
mdy("March 20th, 2019")
dmy("1st april of 2018")

อย่างที่เห็น lubridate การรับรู้คำอธิบายวันที่เป็นข้อความจะมีประสิทธิภาพมากกว่ามาก และช่วยให้คุณสามารถแปลงข้อความให้เป็นวันที่โดยไม่ต้องใช้ตัวดำเนินการเพิ่มเติมเพื่ออธิบายรูปแบบ

การแยกส่วนประกอบวันที่โดยใช้แพ็คเกจ lubridate

ยังใช้ lubridate คุณสามารถรับส่วนประกอบใดก็ได้จากวันที่:

dt <- ymd("2017 jan 21")

year(dt)  # год
month(dt) # месяц
mday(dt)  # день в месяце
yday(dt)  # день в году
wday(dt)  # день недели

การดำเนินการทางคณิตศาสตร์พร้อมวันที่

แต่ฟังก์ชั่นพื้นฐานที่สำคัญที่สุด lubridate คือความสามารถในการดำเนินการทางคณิตศาสตร์ต่างๆ พร้อมวันที่

การปัดเศษวันที่จะดำเนินการโดยสามฟังก์ชัน:

  • floor_date - การปัดเศษให้เป็นอดีตกาลที่ใกล้ที่สุด
  • ceiling_date — การปัดเศษเป็นกาลอนาคตอันใกล้
  • round_date - ปัดเศษเป็นเวลาที่ใกล้ที่สุด

แต่ละฟังก์ชันเหล่านี้มีข้อโต้แย้ง หน่วยซึ่งให้คุณระบุหน่วยปัดเศษได้: วินาที นาที ชั่วโมง วัน สัปดาห์ เดือน สองเดือน ไตรมาส ฤดูกาล ครึ่งปี ปี

dt <- ymd("2017 jan 21")

round_date(dt, unit = "month")    # округлить до месяца
round_date(dt, unit = "3 month")  # округлить до 3 месяцев
round_date(dt, unit = "quarter")  # округлить до квартала
round_date(dt, unit = "season")   # округлить до сезона
round_date(dt, unit = "halfyear") # округлить до полугодия

ลองมาดูวิธีหาวันที่ที่อยู่หลังวันที่ปัจจุบัน 8 วัน และคำนวณทางคณิตศาสตร์อื่นๆ ระหว่างวันที่สองวันนั้น

today() + days(8)   # какая дата будет через 8 дней
today() - months(2) # какая дата была 2 месяца назад
today() + weeks(12) # какая дата будет через 12 недель
today() - years(2)  # какая дата была 2 года назад

ลดความซับซ้อนของการทำงานด้วยช่วงเวลา ช่วงเวลาแพ็คเกจ R

timeperiodsR — แพ็คเกจใหม่สำหรับการทำงานกับวันที่ที่เผยแพร่บน CRAN ในเดือนกันยายน 2019

กำลังติดตั้งแพ็คเกจ timeperiodsR:

install.packages("timeperiodsR")

วัตถุประสงค์หลักคือเพื่อกำหนดช่วงเวลาหนึ่งที่เกี่ยวข้องกับวันที่ที่กำหนดอย่างรวดเร็ว ตัวอย่างเช่น การใช้ฟังก์ชันต่างๆ คุณสามารถ:

  • รับสัปดาห์ เดือน ไตรมาส หรือปีที่ผ่านมาใน R
  • รับจำนวนช่วงเวลาที่ระบุซึ่งสัมพันธ์กับวันที่ เช่น 4 สัปดาห์ที่ผ่านมา
  • ง่ายต่อการแยกส่วนประกอบออกจากช่วงเวลาที่เป็นผลลัพธ์: วันที่เริ่มต้นและสิ้นสุด จำนวนวันที่รวมในช่วงเวลานั้น ลำดับวันที่ทั้งหมดที่รวมอยู่ในนั้น

ชื่อของฟังก์ชันแพ็คเกจทั้งหมด timeperiodsR ใช้งานง่ายและประกอบด้วยสองส่วน: ทิศทาง_ช่วงเวลา, ที่ไหน:

  • ทิศทาง ซึ่งคุณต้องย้ายสัมพันธ์กับวันที่ที่กำหนด: Last_n, ก่อนหน้า, นี้, ถัดไป, Next_n
  • ชั่วขณะ ช่วงเวลา เพื่อคำนวณช่วงเวลา: วัน สัปดาห์ เดือน ไตรมาส ปี

ชุดคุณสมบัติเต็ม:

  • last_n_days()
  • last_n_weeks()
  • last_n_months()
  • last_n_quarters()
  • last_n_years()
  • previous_week()
  • previous_month()
  • previous_quarter()
  • previous_year()
  • this_week()
  • this_month()
  • this_quarter()
  • this_year()
  • next_week()
  • next_month()
  • next_quarter()
  • next_year()
  • next_n_days()
  • next_n_weeks()
  • next_n_months()
  • next_n_quarters()
  • next_n_years()
  • custom_period()

ช่วงเวลาในช่วงเวลาR

ฟังก์ชันเหล่านี้มีประโยชน์ในกรณีที่คุณต้องการสร้างรายงานตามข้อมูลจากสัปดาห์หรือเดือนที่ผ่านมา หากต้องการรับเดือนที่แล้ว ให้ใช้ฟังก์ชันชื่อเดียวกัน previous_month():

prmonth <- previous_month()

หลังจากนั้นคุณจะมีวัตถุ เดือนก่อน ชั้น tprโดยสามารถหาส่วนประกอบดังต่อไปนี้ได้อย่างง่ายดาย:

  • วันที่เริ่มต้นของช่วงเวลา ในตัวอย่างของเรา นี่คือเดือนสุดท้าย
  • วันที่สิ้นสุดงวด
  • จำนวนวันที่รวมอยู่ในงวดนั้น
  • ลำดับวันที่รวมอยู่ในงวด

ยิ่งไปกว่านั้น คุณสามารถรับส่วนประกอบแต่ละอย่างได้ด้วยวิธีที่แตกต่างกัน:

# первый день периода
prmonth$start
start(prmonth)

# последний день периода
prmonth$end
end(prmonth)

# последовательность дат
prmonth$sequence
seq(prmonth)

# количество дней входящих в период
prmonth$length
length(prmonth)

คุณยังสามารถรับส่วนประกอบใด ๆ โดยใช้อาร์กิวเมนต์ได้ ส่วนหนึ่งซึ่งมีอยู่ในแต่ละฟังก์ชันของแพ็คเกจ ค่าที่เป็นไปได้: เริ่มต้น สิ้นสุด ลำดับ ความยาว

previous_month(part = "start")    # начало периода
previous_month(part = "end")      # конец периода
previous_month(part = "sequence") # последовательность дат
previous_month(part = "length")   # количество дней в периоде

มาดูอาร์กิวเมนต์ทั้งหมดที่มีอยู่ในฟังก์ชันแพ็คเกจกันดีกว่า timeperiodsR:

  • x — วันที่อ้างอิงที่จะใช้คำนวณช่วงเวลา วันที่ปัจจุบันตามค่าเริ่มต้น
  • n — จำนวนช่วงเวลาที่จะรวมในช่วงเวลานั้น เช่น 3 สัปดาห์ก่อนหน้า
  • part - ส่วนประกอบใดของวัตถุ tpr คุณต้องได้รับตามค่าเริ่มต้น all;
  • week_start — อาร์กิวเมนต์มีอยู่ในฟังก์ชันสำหรับการทำงานกับสัปดาห์เท่านั้นและอนุญาตให้คุณกำหนดจำนวนวันในสัปดาห์ที่จะถือเป็นจุดเริ่มต้น ตามค่าเริ่มต้น จุดเริ่มต้นของสัปดาห์คือวันจันทร์ แต่คุณสามารถตั้งค่าใดก็ได้จาก 1 - วันจันทร์ถึง 7 - วันอาทิตย์

ดังนั้น คุณสามารถคำนวณช่วงเวลาใดๆ ที่เกี่ยวข้องกับวันที่ปัจจุบันหรือวันที่อื่นๆ ต่อไปนี้คือตัวอย่างเพิ่มเติมบางส่วน:

# получить 3 прошлые недели
# от 6 октября 2019 года
# начало недели - понедельник
last_n_weeks(x = "2019-10-06", 
             n = 3, 
             week_start = 1)

 Time period: from  9 September of 2019, Monday to 29 September of 2019, Sunday

6 ตุลาคมเป็นวันอาทิตย์:
การทำงานกับวันที่ใน R (ความสามารถพื้นฐาน รวมถึงแพ็คเกจ lubridate และระยะเวลา R)

เราต้องการช่วงเวลาที่สัมพันธ์กับวันที่ 6 ตุลาคม ซึ่งจะใช้เวลา 3 สัปดาห์ก่อนหน้า ไม่รวมสัปดาห์ที่มีวันที่ 6 ตุลาคมนั่นเอง ดังนั้นนี่คือช่วงเวลาตั้งแต่ 9 กันยายนถึง 29 กันยายน

การทำงานกับวันที่ใน R (ความสามารถพื้นฐาน รวมถึงแพ็คเกจ lubridate และระยะเวลา R)

# получить месяц отстающий на 4 месяца
# от 16 сентября 2019 года
previous_month(x = "2019-09-16", n = 4)

 Time period: from  1 May of 2019, Wednesday to 31 May of 2019, Friday

ในตัวอย่างนี้ เราสนใจเดือนที่ 4 เดือนที่แล้ว ถ้าเราเริ่มจากวันที่ 16 กันยายน 2019 ก็คือเดือนพฤษภาคม 2019

การกรองเวกเตอร์ของวันที่โดยใช้ช่วงเวลา R

เพื่อกรองวันที่ timeperiodsR มีโอเปอเรเตอร์หลายตัว:

  • %left_out% - เปรียบเทียบอ็อบเจ็กต์คลาส tpr สองตัว และส่งกลับค่าจากอันซ้ายที่หายไปในอันขวา
  • %left_in% - เปรียบเทียบสองวัตถุของคลาส tpr และส่งกลับวันที่จากวัตถุด้านซ้ายซึ่งรวมอยู่ในวัตถุด้านขวา
  • %right_out% - เปรียบเทียบอ็อบเจ็กต์คลาส tpr สองตัว และส่งกลับค่าจากอันขวาที่หายไปจากอันซ้าย
  • %right_in% - เปรียบเทียบสองวัตถุของคลาส tpr และส่งกลับวันที่จากวัตถุที่ถูกต้องซึ่งปรากฏอยู่ในวัตถุด้านซ้าย

period1 <- this_month("2019-11-07")
period2 <- previous_week("2019-11-07")

period1 %left_in% period2   # получить даты из period1 которые входят в period2
period1 %left_out% period2  # получить даты из period1 которые не входят в period2
period1 %right_in% period2  # получить даты из period2 которые входят в period1
period1 %right_out% period2 # получить даты из period2 которые не входят в period1

ที่แพ็คเกจ timeperiodsR มีภาษารัสเซียอย่างเป็นทางการ เพลย์ลิสต์ยูทูป.

ข้อสรุป

เราตรวจสอบรายละเอียดคลาสของออบเจ็กต์ที่ได้รับการออกแบบในภาษา R สำหรับการทำงานกับวันที่ ตอนนี้คุณสามารถดำเนินการทางคณิตศาสตร์ตามวันที่และรับช่วงเวลาใด ๆ ได้อย่างรวดเร็วโดยใช้แพ็คเกจ timeperiodsR.

หากคุณสนใจในภาษา R ฉันขอเชิญคุณสมัครรับข้อมูลช่องโทรเลขของฉัน R4การตลาดซึ่งฉันแบ่งปันเนื้อหาที่เป็นประโยชน์ทุกวันเกี่ยวกับการใช้ภาษา R ในการแก้ปัญหาประจำวันของคุณ

ที่มา: will.com

เพิ่มความคิดเห็น