ฉันต้องการใช้dplyr::mutate()
เพื่อสร้างคอลัมน์ใหม่หลายคอลัมน์ในกรอบข้อมูล ชื่อคอลัมน์และเนื้อหาควรถูกสร้างขึ้นแบบไดนามิก
ตัวอย่างข้อมูลจากม่านตา:
library(dplyr)
iris <- tbl_df(iris)
ฉันได้สร้างฟังก์ชันเพื่อกลายพันธุ์คอลัมน์ใหม่ของฉันจากPetal.Width
ตัวแปร:
multipetal <- function(df, n) {
varname <- paste("petal", n , sep=".")
df <- mutate(df, varname = Petal.Width * n) ## problem arises here
df
}
ตอนนี้ฉันสร้างการวนซ้ำเพื่อสร้างคอลัมน์ของฉัน:
for(i in 2:5) {
iris <- multipetal(df=iris, n=i)
}
อย่างไรก็ตามเนื่องจาก mutate คิดว่า varname เป็นชื่อตัวแปรตามตัวอักษรการวนซ้ำจึงสร้างเพียงหนึ่งตัวแปรใหม่ (เรียกว่า varname) แทนสี่ (เรียกว่า petal.2 - petal.5)
ฉันmutate()
จะใช้ชื่อแบบไดนามิกของฉันเป็นชื่อตัวแปรได้อย่างไร
dplyr
มีบทความทั้งหมดในการประเมินที่ไม่ได้มาตรฐาน
mutate_
และจริงๆแล้วมันไม่ชัดเจนจากฟังก์ชั่นอื่น ๆ ในการใช้งาน