Nicolas Gutierrez
2011-Mar-09 23:45 UTC
[R] extracting half the rows with unique values from data.frame
hey!! Another data.frame question: I have the following data.frame (pop) pp=textConnection(" + xloc yloc gonad ind Ene W Agent + 1 23 20 516.74 1 0.02 20.21 0.25 + 2 23 20 1143.20 1 0.02 20.21 0.50 + 3 23 20 250.00 1 0.02 20.21 0.25 + 4 22 15 251.98 1 0.02 18.69 0.25 + 5 24 18 598.08 1 0.02 18.69 0.25 + 6 24 18 598.08 1 0.02 18.69 0.25 + 7 22 17 598.08 1 0.02 18.69 0.25 + 8 23 19 598.08 1 0.02 18.69 0.25 + 9 21 18 598.08 1 0.02 18.69 0.25 + 10 25 15 598.08 1 0.02 18.69 0.25 + ") pop <- read.table(pp, header = TRUE) close(pp) And I need to extract only 50% of the rows within same (xloc,yloc) until I reach a number (n=4) of unique (xloc,yloc). For example: 1. If I need n=4, I will extract those rows that unique (xloc,yloc) sum up 4. That would be rows 1 to 7. 2. However I need only need half (or rounded to half) the rows in unique (loc,yloc).That means from (xloc=23, yloc=20) I will extract only rows 1 and 2 (n=1); then I will extract row 3 (22,15) to get n=2; then I will extract row 4 (22,15) to get n=3; and finally extract row 5 (24,18) to get n=4. This would get me the following data.frame with 5 rows instead of 7 rows: xloc yloc gonad ind Ene W Agent 1 23 20 516.74 1 0.02 20.21 0.25 2 23 20 1143.20 1 0.02 20.21 0.50 3 22 15 251.98 1 0.02 18.69 0.25 4 24 18 598.08 1 0.02 18.69 0.25 5 22 17 598.08 1 0.02 18.69 0.25 Hope I'm not too confusing.. and THANKS for any help! Nico