Tôi đang tìm cách phổ biến để thay đổi giá trị của đối số bên trong dấu ba chấm và chuyển nó sang giá trị khác chức năng. Tôi biết một giải pháp xấu xí cho điều đó, trông giống như sau:R: Thay đổi giá trị của đối số trong dấu ba chấm và chuyển dấu ba chấm sang hàm khác mà không sử dụng danh sách() và eval()
test <- function(...) {
a <- list(...)
a[['y']] <- 2
return(eval(parse(text=paste0('identical(',paste(unlist(a),collapse=','),')'))))
}
test(x=1,y=1)
Lý tưởng nhất là tôi muốn tránh chuyển đổi ... sang danh sách và sau đó sử dụng eval(). Có thể nào đó bằng cách nào đó đề cập đến một đối số bên trong ... bằng tên và thay đổi giá trị của nó?
+1 cho 'do.call (giống hệt,.)'! –
Giải pháp tuyệt vời! – user1603038