On 5/11/19 3:41 AM, Hadley Wickham wrote:
For what it's worth, I don't think this strategy can work in general, because a class might have attributes that depend on its data/contents (e.g. https://vctrs.r-lib.org/articles/s3-vector.html#cached-sum). I don't think these are particularly common in practice, but it's dangerous to assume that you can restore a class simply by restoring its attributes after subsetting.
You're probably right that there are lurking perils in general, but I am not trying to "restore a class". I simply want to *retain* attributes of columns in a data frame.
* I have a data frame X * I attach attributes to certain of its columns; attr(X$melvin,"clyde") <- 42 (I *don't* change the class of X$melvin.) * I form a subset of X: Y <- X[1:100,3:10] * given that "melvin" is amongst columns 3 through 10 of X, I want Y$melvin to retain the attribute "clyde", i.e. I want attr(Y$melvin,"clyde") to return 42 There is almost surely a better approach than the one that I've chosen (isn't there always?) but it seems to work, and the perils certainly are not immediately apparent to me. cheers, Rolf -- Honorary Research Fellow Department of Statistics University of Auckland Phone: +64-9-373-7599 ext. 88276 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel