ในการลบคอลัมน์หนึ่งชื่อขึ้นไปเมื่อชื่อคอลัมน์เป็นที่รู้จัก (ซึ่งต่างกับการพิจารณาในช่วงรันไทม์) ฉันชอบsubset()
ไวยากรณ์ เช่นสำหรับ data-frame
df <- data.frame(a=1:3, d=2:4, c=3:5, b=4:6)
เพื่อลบเพียง a
คอลัมน์ที่คุณสามารถทำได้
Data <- subset( Data, select = -a )
และเพื่อลบb
และd
คอลัมน์ที่คุณสามารถทำได้
Data <- subset( Data, select = -c(d, b ) )
คุณสามารถลบคอลัมน์ทั้งหมดระหว่างd
และb
ด้วย:
Data <- subset( Data, select = -c( d : b )
ดังที่ฉันได้กล่าวไว้ข้างต้นวากยสัมพันธ์นี้ใช้ได้เฉพาะเมื่อทราบชื่อคอลัมน์ มันจะไม่ทำงานเมื่อพูดชื่อคอลัมน์ถูกกำหนดโดยทางโปรแกรม (เช่นถูกกำหนดให้กับตัวแปร) ฉันจะทำซ้ำคำเตือนนี้จาก?subset
เอกสาร:
คำเตือน:
นี่คือฟังก์ชั่นอำนวยความสะดวกสำหรับการใช้งานแบบโต้ตอบ สำหรับการเขียนโปรแกรมจะเป็นการดีกว่าที่จะใช้ฟังก์ชั่นการแบ่งย่อยมาตรฐานเช่น '[' และโดยเฉพาะอย่างยิ่งการประเมินที่ไม่ได้มาตรฐานของอาร์กิวเมนต์ 'เซ็ตย่อย' อาจมีผลที่ไม่คาดคิด