[Rd] Puzzled about a new method for "[".
hp@ge@ @end|ng |rom |redhutch@org
Mon Nov 4 22:40:19 CET 2019
On 11/4/19 12:28, Rolf Turner wrote:
> 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
>> ). 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.
Maybe you've solved the problem for the columns that contain your
objects but now you've introduced a potential problem for columns that
contain objects with attributes whose value depend on content.
Hadley it right that restoring the original attributes of a vector (list
or atomic) after subsetting is unsafe.
Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024
E-mail: hpages using fredhutch.org
Phone: (206) 667-5791
Fax: (206) 667-1319
More information about the R-devel