Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: any idea?


From   "Y.R.E. Retamal" <[email protected]>
To   [email protected]
Subject   Re: st: any idea?
Date   Tue, 07 Jan 2014 18:20:09 +0000

Thank you very much Eric and Nick for the advices.

I will try to give a clearer idea of what want to do:
For example I have the following database of human bones. I removed missing values of length for a better understanding:

id	type	side	length		id	type	side	length
1	femur	left	18		21	humerus	left	13
2	femur	left	65.85		22	humerus	left	56
3	femur	left	69.1		23	humerus	left	92
4	femur	left	130		24	humerus	left	126
5	femur	left	131.2		25	humerus	left	154
6	femur	left	143		26	humerus	left	170
7	femur	left	145		27	humerus	left	198
8	femur	left	160		28	humerus	left	228
9	femur	left	183		29	humerus	left	230
10	femur	left	200		30	humerus	left	232
11	femur	right	28		31	humerus	right	238
12	femur	right	80		32	humerus	right   10
13	femur	right	96.5		33	humerus	right	66
14	femur	right	126		34	humerus	right	123
15	femur	right	127		35	humerus	right	128
16	femur	right	128		36	humerus	right	143
17	femur	right	138		37	humerus	right	200
18	femur	right	146		38	humerus	right	228
19	femur	right	148		39	humerus	right	230
20	femur	right	200		40	humerus	right	241

These data belong to a commingled skeletal collection and some right bones (femurs and humerus respectively) should match with a left bone, but I do not know which bones match. Following the idea that a right bone from a same skeleton should have the same length (approximately) with its respective left bone, I want to subtract each right femur to each left femur, with the aim to find which right femur matches with a left femur, i.e. have the same or almost the same length, so the subtraction would be zero or near zero. The same proceeding with the humerus (and other bones).

If you have any idea to perform this, please let me know.

Rodrigo



Best wishes

Rodrigo




On 2014-01-05 23:54, Nick Cox wrote:
<>

Eric Booth gives very good advice.

Your problem with the link to the Stata Journal file you were directed
to me may be just that you didn't step past the standard material
bundled with every reprint file.

Nick
[email protected]


On 5 January 2014 21:03, Eric Booth <[email protected]> wrote:
<>

The Stata Journal link you mention that Nick sent you works for me. The title of the article is "Stata tip 71: The problem of split identity, or how to group dyads” by Nick J. Cox, so maybe you can google that title if your browser isn’t navigating to it properly.



Your example dataset doesn’t align with your desired dataset.

How do we know what is x and what is j in the first 20 obs of your example data (see below) (also note the Statalist FAQ about not sending attachments) ?

You need some kind of identifier that ties, for example, obs or id 1 (even though it’s missing) to the other right side femur observation of interest (is it id 7 or id 9 or ??).


**your example data:

id      type    side    length
1       femur   right
2       femur   left
3       femur   right
4       femur   left
5       femur   right   373
6       femur   left    416
7       femur   right   138
8       femur   left
9       femur   right   270
10      femur   left
11      femur   left
12      femur   right
13      femur   left
14      femur   right
15      femur   left    281
16      femur   right
17      femur   left    160
18      femur   left
19      femur   right
20      femur   left


We can’t just sort by ‘type’ and ‘side’ to get a dataset of the same structure as you presented initially, so I think you need to provide more information about this. (also, if the rule is, as you imply, to sort by type and side and then subtract every third observation from each other then what do we do with missing 'length' and missing ‘side’?)

If the rule is that id 1 and id 2 are a pair then whey does the left/right ordering suddenly change starting around id 17?

- Eric




On Jan 5, 2014, at 2:46 PM, Y.R.E. Retamal <[email protected]> wrote:

Dear Guys

Some weeks ago, Red Owl and Nick helped me with some loops for my work. I have tried to run some suggestion in my dataset, but I had some difficulties.
I give you the basic structure of my dataset and my question:

I want to create some new variables containing the difference between the length of two individuals from different groups:

id     side     length      newvar1       newvar2      newvar3
1      right      x           x-j           x-k          x-l
2      right      y           y-j           y-k          y-l
3      right      z           z-j           z-k          z-l
4      left       j           j-x           j-y          j-z
5      left       k           k-x           k-y          k-z
6      left       l           l-x           l-y          l-z

Red Owl suggested me following this example:

*** BEGIN CODE ***
* Build demo data set.
clear
* Length is capitalized to distinguish from length().
input id str5(side) Length
1 right 10
2 right 15
3 right 11
4 left  13
5 left  10
6 left  12
end
gen byte newvar1 = .
forval i = 1/3 {
 replace newvar1 = Length[`i'] - Length[4] in `i'
 }
forval i = 4/6 {
 replace newvar1 = Length[`i'] - Length[1] in `i'
 }
gen byte newvar2 = .
forval i = 1/3 {
 replace newvar2 = Length[`i'] - Length[5] in `i'
 }
forval i = 4/6 {
 replace newvar2 = Length[`i'] - Length[2] in `i'
 }
gen byte newvar3 = .
forval i = 1/3 {
 replace newvar3 = Length[`i'] - Length[6] in `i'
 }
forval i = 4/6 {
 replace newvar3 = Length[`i'] - Length[3] in `i'
 }
list, noobs sep(0)
*** END CODE ***

However, my dataset is much more longer and is difficult to perform it.
I hope you can help me giving me more ideas.
I send you an extract of my dataset in .xlsx format
Also, the webpage suggested by Nick to review the discussion about the topic (http://www.stata-journal.com/sjpdf.html?articlenum=dm0043) redirects me to a non-sense file to download. Please give me the number of the journal to read the discussion.

Happy new year to all of you

Rodrigo


On 2013-12-15 22:39, Y.R.E. Retamal wrote:
Dear Red Owl and Nick
Thank you very much for your response. The code works perfectly, just as I need.
Best wishes
Rodrigo
On 2013-12-14 22:31, Nick Cox wrote:
In addition to Red's helpful suggestions, note that technique for such
paired data was discussed in
http://www.stata-journal.com/sjpdf.html?articlenum=dm0043
which is publicly accessible. The problem is that the identifiers in Rodrigo's example appear to make little sense. How is Stata expected
to know that 1 and 4, 2 and 5, 3 and 6 are paired? Perhaps the
structure of the dataset is clearer in practice. If so, basic
calculations are just a couple of lines or so.
Nick
[email protected]
On 14 December 2013 15:33, Red Owl <[email protected]> wrote:
Rodrigo,
The following code demonstrates an approach with basic loops.
It could be made more efficient with a different loop
structure, but this approach may be more informative.
*** BEGIN CODE ***
* Build demo data set.
clear
* Length is capitalized to distinguish from length().
input id str5(side) Length
1 right 10
2 right 15
3 right 11
4 left  13
5 left  10
6 left  12
end
gen byte newvar1 = .
forval i = 1/3 {
 replace newvar1 = Length[`i'] - Length[4] in `i'
 }
forval i = 4/6 {
 replace newvar1 = Length[`i'] - Length[1] in `i'
 }
gen byte newvar2 = .
forval i = 1/3 {
 replace newvar2 = Length[`i'] - Length[5] in `i'
 }
forval i = 4/6 {
 replace newvar2 = Length[`i'] - Length[2] in `i'
 }
gen byte newvar3 = .
forval i = 1/3 {
 replace newvar3 = Length[`i'] - Length[6] in `i'
 }
forval i = 4/6 {
 replace newvar3 = Length[`i'] - Length[3] in `i'
 }
list, noobs sep(0)
*** END CODE ***
Good luck.
Red Owl
[email protected]
Y.R.E. Retamal" <[email protected]> Sat, 14 Dec 2013 12:08:42:
Dear list
I am very complicated trying to perform an analysis using STATA and I
cannot find the way. Maybe you could help me. I want to create some new
variables containing the difference between the length of two
individuals from different groups:
id     side     length      newvar1       newvar2      newvar3
1      right      x           x-j           x-k          x-l
2      right      y           y-j           y-k          y-l
3      right      z           z-j           z-k          z-l
4      left       j           j-x           j-y          j-z
5      left       k           k-x           k-y          k-z
6      left       l           l-x           l-y          l-z
I do not know if I do explain myself clearly, the individuals are
bones (clavicles, for example), so it is possible that some right
clavicles pair-match with left clavicles, following the idea that an
individual has bone of similar length.
Any help could bring me a light!
Best wishes
Rodrigo
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/
<example.xlsx>


*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index