(PR#9202) Re: Bugs with partial name matching
On Tue, 5 Sep 2006, Anil Maliyekkel wrote:
This problem does not appear when the following is done
D = list(ABCD=2:1) D$ABC[]=c(3,4) D
$ABCD [1] 2 1 $ABC [1] 3 4
<other examples snipped>
It appears to be a sequence specific bug for the $ operator, which might explain why it did not occur with my original examples where I had a character data column, but did appear where I had a numeric data column that was a sequence.
Appearances can be deceptive. The point is that 2:1 and 3:4 are integer vectors but c(3,4) is a double precision vector. Assigning values of a different type into a vector requires copying and so masks the bug.
Going back to the original partial replacement problem, is there anyway to turn off partial matching, or to selectively apply exact matching when trying to access a single element?
No.
I can get the desired single element match using the convoluted syntax D["ABC"] [[1]] and perform partial replacement operations on a new column. However, it would be nice to have single element access operator that does exact matching.
It wouldn't fix the bug, and we are running low on symbols that could be used. -thomas Thomas Lumley Assoc. Professor, Biostatistics tlumley at u.washington.edu University of Washington, Seattle