วิธีใช้ฟังก์ชัน cross() ใน dplyr (3 ตัวอย่าง)


คุณสามารถใช้ฟังก์ชัน across() จากแพ็คเกจ dplyr ใน R เพื่อใช้การแปลงกับหลายคอลัมน์

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

วิธีที่ 1: ใช้ฟังก์ชันกับหลายคอลัมน์

 #multiply values in col1 and col2 by 2
df %>% 
  mutate(across(c(col1, col2), function (x) x*2))

วิธีที่ 2: คำนวณสถิติสรุปสำหรับหลายคอลัมน์

 #calculate mean of col1 and col2
df %>%
  summarise(across(c(col1, col2), mean, na. rm = TRUE ))

วิธีที่ 3: คำนวณสถิติสรุปหลายรายการสำหรับหลายคอลัมน์

 #calculate mean and standard deviation for col1 and col2
df %>%
  summarise(across(c(col1, col2), list(mean=mean, sd=sd), na. rm = TRUE ))

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีกับกรอบข้อมูลต่อไปนี้:

 #create data frame
df <- data. frame (conf=c('East', 'East', 'East', 'West', 'West', 'West'),
                 points=c(22, 25, 29, 13, 22, 30),
                 rebounds=c(12, 10, 6, 6, 8, 11))

#view data frame
df

  conf points rebounds
1 East 22 12
2 East 25 10
3 East 29 6
4 West 13 6
5 West 22 8
6 West 30 11

ตัวอย่างที่ 1: ใช้ฟังก์ชันกับหลายคอลัมน์

รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน across() เพื่อคูณค่าในคอลัมน์ จุด และ รีบาวด์ ด้วย 2:

 library (dplyr)

#multiply values in points and rebounds columns by 2
df %>% 
  mutate(across(c(points, rebounds), function (x) x*2))

  conf points rebounds
1 East 44 24
2 East 50 20
3 East 58 12
4 West 26 12
5 West 44 16
6 West 60 22

ตัวอย่างที่ 2: คำนวณสถิติสรุปสำหรับหลายคอลัมน์

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน ข้าม() เพื่อคำนวณค่าเฉลี่ยของคอลัมน์ จุด และ รีบาวด์ :

 library (dplyr)

#calculate mean value of points an rebounds columns
df %>%
  summarise(across(c(points, rebounds), mean, na. rm = TRUE ))

  rebound points
1 23.5 8.833333

โปรดทราบว่าเรายังสามารถใช้ฟังก์ชัน is.numeric เพื่อคำนวณสถิติสรุปสำหรับคอลัมน์ตัวเลขทั้งหมดในกรอบข้อมูลโดยอัตโนมัติ:

 library (dplyr)

#calculate mean value for every numeric column in data frame
df %>%
  summarise(across(where(is. numeric ), mean, na. rm = TRUE ))

  rebound points
1 23.5 8.833333

ตัวอย่างที่ 3: คำนวณสถิติสรุปหลายรายการสำหรับหลายคอลัมน์

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน across() เพื่อคำนวณค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานของคอลัมน์ จุด และ รีบาวด์ :

 library (dplyr)

#calculate mean and standard deviation for points and rebounds columns
df %>%
  summarise(across(c(points, rebounds), list(mean=mean, sd=sd), na. rm = TRUE ))

  points_mean points_sd rebounds_mean rebounds_sd
1 23.5 6.156298 8.833333 2.562551

หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มเกี่ยวกับฟังก์ชัน cross() ได้ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการใช้งานฟังก์ชันทั่วไปอื่นๆ โดยใช้ dplyr:

วิธีลบแถวโดยใช้ dplyr
วิธีจัดเรียงแถวโดยใช้ dplyr
วิธีกรองตามเงื่อนไขต่างๆ โดยใช้ dplyr

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

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *