eski deparse-yerine hüner:
a<-data.frame(x=1:10,y=1:10)
test<-function(z){
mean.x<-mean(z$x)
nm <-deparse(substitute(z))
print(nm)
return(mean.x)}
test(a)
#[1] "a" ... this is the side-effect of the print() call
# ... you could have done something useful with that character value
#[1] 5.5 ... this is the result of the function call
Düzenleme: yeni tes ile Ran t-object
Not: Bu liste, bir liste öğesi öğesi lapply
'a iletildiğinde (ve ayrıca bir nesne bir for
-loop'a verilen listeden geçirildiğinde de başarısız olduğunda) yerel bir işlev içinde başarılı olmaz. İşlenmekte olan adlandırılmış bir vektör olsaydı, .Names özniteliğini ve işlem sırasındaki işlem sırasını ayıklayabilmek.
> lapply(list(a=4,b=5), function(x) {nm <- deparse(substitute(x)); strsplit(nm, '\\[')})
$a
$a[[1]]
[1] "X" "" "1L]]"
$b
$b[[1]]
[1] "X" "" "2L]]"
> lapply(c(a=4,b=5), function(x) {nm <- deparse(substitute(x)); strsplit(nm, '\\[')})
$a
$a[[1]]
[1] "structure(c(4, 5), .Names = c(\"a\", \"b\"))" ""
[3] "1L]]"
$b
$b[[1]]
[1] "structure(c(4, 5), .Names = c(\"a\", \"b\"))" ""
[3] "2L]]"
Bence yapar 'deparse (yerine (...)) 'senin ne olduğunu test etmek için "z" olarak adlandırılan değişken ve parametre olması * Ayrıca * denilen "z" ... Baskı "z" gerçekten eğer size değil gerçi – Chase
Kötü örnek sonra Bunu doğru bir şekilde yaptıysanız ;-) – Tommy
@ Tommy, bunu geliştirmeye çalıştı, ancak isterseniz dilerseniz düzenlemeyle geliştirin. –