Tiêu đề không phải là siêu mô tả vì vấn đề dài hơn một tiêu đề hợp lý mà tôi có thể nghĩ là có thể hiển thị.Lấy tên đối tượng từ bên trong một hàm
Tôi muốn có một hàm lấy tên đối tượng từ các hàm khác có thể được sử dụng làm đối số trong hàm khác. Dưới đây là một nỗ lực barebones:
grab <- function(x) {
as.character(substitute(x))
}
FUN <- function(foo, bar = grab(foo)) {
bar
}
FUN(mtcars)
Ở đây tôi muốn của FUN
để trả lại chuỗi ký tự "mtcars" nhưng nó sẽ trả về "foo". Làm thế nào có thể làm cho một chức năng lấy mà thực hiện điều này (tôi muốn làm điều này bởi vì tôi sẽ sử dụng điều này như là mặc định cho một tập tin txt/csv vv.Đó là một thiết lập thuận tiện. nhưng tôi muốn có một hàm lấy generic):
FUN2 <- function(foo, bar = as.character(substitute(bar))) {
bar
}
FUN2(mtcars)
#==================
FUN3 <- function(foo, bar) {
if(missing(bar)) bar <- foo
as.character(substitute(bar))
}
FUN3(mtcars)
cuộc sống-ish Bất dụ:
real_example <- function(obj, file = grab(obj)) {
write.csv(obj, file = sprintf("%s.csv", file))
}
Hãy chỉnh sửa hoặc chỉnh sửa tiêu đề để làm rõ hơn. –
Câu hỏi này trông rất giống nhau: http://stackoverflow.com/questions/5754367/using-substitute-to-get-argument-name-with – Frank
@ Frank bạn có nhận được bất kỳ phản hồi nào trong số những câu trả lời đó không? –