dplyr
คำถามของฉันที่เกี่ยวข้องกับข้อสรุปถึงค่าในหลายคอลัมน์ของกรอบข้อมูลและการสร้างคอลัมน์ใหม่ที่สอดคล้องกับผลบวกนี้โดยใช้ รายการข้อมูลในคอลัมน์เป็นไบนารี (0,1) ฉันคิดของอนาล็อกแถวที่ชาญฉลาดของsummarise_each
หรือการทำงานของmutate_each
dplyr
ด้านล่างนี้เป็นตัวอย่างขั้นต่ำของ data frame:
library(dplyr)
df=data.frame(
x1=c(1,0,0,NA,0,1,1,NA,0,1),
x2=c(1,1,NA,1,1,0,NA,NA,0,1),
x3=c(0,1,0,1,1,0,NA,NA,0,1),
x4=c(1,0,NA,1,0,0,NA,0,0,1),
x5=c(1,1,NA,1,1,1,NA,1,0,1))
> df
x1 x2 x3 x4 x5
1 1 1 0 1 1
2 0 1 1 0 1
3 0 NA 0 NA NA
4 NA 1 1 1 1
5 0 1 1 0 1
6 1 0 0 0 1
7 1 NA NA NA NA
8 NA NA NA 0 1
9 0 0 0 0 0
10 1 1 1 1 1
ฉันสามารถใช้สิ่งต่างๆเช่น:
df <- df %>% mutate(sumrow= x1 + x2 + x3 + x4 + x5)
แต่จะเกี่ยวข้องกับการเขียนชื่อของแต่ละคอลัมน์ ฉันมี 50 คอลัมน์ นอกจากนี้ชื่อคอลัมน์จะเปลี่ยนไปตามการวนซ้ำที่แตกต่างกันซึ่งฉันต้องการใช้การดำเนินการนี้ดังนั้นฉันจึงพยายามหลีกเลี่ยงการตั้งชื่อคอลัมน์ใด ๆ
ฉันจะทำอย่างมีประสิทธิภาพสูงสุดได้อย่างไร ความช่วยเหลือใด ๆ จะได้รับการชื่นชมอย่างมาก
dplyr
? ทำไมไม่เพียงแค่ง่ายๆdf$sumrow <- rowSums(df, na.rm = TRUE)
จากฐาน R? หรือถ้าคุณต้องการที่จะทำซ้ำสิ่งที่แน่นอนที่คุณทำกับdf$sumrow <- Reduce(`+`, df)
dplyr