ฉันมีกรอบข้อมูลและต้องการกรองด้วยวิธีใดวิธีหนึ่งจากสองวิธี โดยคอลัมน์ "นี้" หรือคอลัมน์ "นั่น" ฉันต้องการที่จะอ้างถึงชื่อคอลัมน์เป็นตัวแปร ฉันจะอ้างถึงชื่อคอลัมน์ด้วยตัวแปรได้อย่างไร (ใน dplyr
หากสร้างความแตกต่าง)
library(dplyr)
df <- data.frame(this = c(1, 2, 2), that = c(1, 1, 2))
df
# this that
# 1 1 1
# 2 2 1
# 3 2 2
df %>% filter(this == 1)
# this that
# 1 1 1
แต่สมมติว่าฉันต้องการใช้ตัวแปร column
เพื่อเก็บ "สิ่งนี้" หรือ "นั่น" และกรองค่าใดก็ตามของ column
ทั้ง as.symbol
และ get
ทำงานในบริบทอื่น แต่ไม่ใช่สิ่งนี้:
column <- "this"
df %>% filter(as.symbol(column) == 1)
# [1] this that
# <0 rows> (or 0-length row.names)
df %>% filter(get(column) == 1)
# Error in get("this") : object 'this' not found
ฉันจะเปลี่ยนค่า column
เป็นชื่อคอลัมน์ได้อย่างไร