Yes, that worked for me. Thank you. On Mon, Nov 28, 2011 at 10:16 PM, David Winsemius <dwinsem...@comcast.net>wrote:
> > On Nov 29, 2011, at 1:08 AM, Katrina Bennett wrote: > > I'd like to sum a matrix only where the matrix meets a specific condition. >> The matrix has 365 rows and about 50,000 columns. >> > > If you describe the meaning attached to the data if might help readers > understand what the acceptable options might be. (Please read the Posting > Guide.) > > > >> str(cdem.mat.yr) >> num [1:365, 1:41772] -43.5 -48.4 -45.9 -38.4 -32 ... >> >> I'm having trouble replicating this because it is not working out for me, >> so I'm unsure I can provide an solid working example (apologies). >> >> I would like to subset my matrix where the values are greater than zero. I >> can do this easily using the following command to generate a matrix of >> TRUE/FALSE conditions. >> >> thaw.index <- subset(cdem.mat.yr > 0) >> > > Are you hoping to subset particular rows? > > If not, then you can make a copy and then set the negative values to NA > > thaw.mat <-cdem.mat.yr > is.na(thaw.mat)<- thaw.mat < 0 > > and ... > > rowSums(thaw.mat, na.rm=TRUE) > > > >> However, every time I then try to run apply, or rowSums to sum the matrix >> rows using this index, I get back errors messages or the wrong answer. >> > > I am guessing that your subset operation produced a vector and that apply > or rowSums no longer makes any sense. > > There is a lot of values that meet this condition, so I know this issue is >> with my formatting of the argument. >> >> i.e. >> rowSums(cdem.mat.yr == thaw.index) >> [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> [66] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> [131] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> 0 >> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> [196] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> 0 >> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> [261] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> 0 >> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> [326] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> 0 >> 0 0 0 0 0 >> >> thaw.index.sum <- apply(cdem.mat.yr[which(cdem.**mat.yr > 0)], 1, sum) >> Error in apply(cdem.mat.yr[which(cdem.**mat.yr > 0)], 1, sum) : >> dim(X) must have a positive length >> >> This just provides me with one single value (I want the sum of all the >> rows >> individually) >> sum(apply(cdem.mat.yr, 1, function(x) x>0)) >> >> If I only run the apply over the entire matrix, this works but I can't >> subset it according to my condition. >> >> apply(cdem.mat.yr, 1, sum) >> [1] -1834000.521 -2038684.652 -1932676.585 -1619369.113 -1353598.426 >> -1190377.640 -1263541.796 -1438280.178 -1472440.385 -1714465.774 >> [11] -1945920.377 -2163888.712 -1836656.208 -1772994.790 -1864650.604 >> -1633144.043 -1580619.187 -1684046.620 -1769963.843 -1787676.116 >> [21] -1643345.342 -1497455.795 -1580307.433 -1483559.628 -1531067.546 >> -1557093.271 -1363626.528 -1160882.203 -1118893.494 -1352922.958 >> [31] -1441715.250 -1539084.024 -1717835.433 -1806727.136 -1887120.912 >> -1645721.673 -1310700.520 -1531408.644 -1582011.715 -1460538.996 >> [41] -1192880.165 -1211111.092 -1190390.732 -1241594.368 -1180704.394 >> -1025346.594 -1073581.060 -889662.991 -798735.050 -784632.707 >> [51] -874676.120 -957186.890 -1054610.980 -1067208.121 -1222859.353 >> -1477327.599 -1635653.310 -1696308.770 -1473630.951 -1283105.867 >> [61] -1061390.704 -811017.224 -875804.422 -851608.811 -948160.325 >> -1440351.359 -1206523.958 -1143659.246 -1405071.144 -1421438.254 >> [71] -1374929.105 -1336184.952 -1237185.588 -1082307.120 -1019742.616 >> -958257.706 -888078.311 -790481.841 -821010.686 -907205.025 >> [81] -966761.676 -926937.928 -908394.310 -976085.444 -971934.490 >> -703952.655 -521541.649 -625973.624 -743458.875 -631452.421 >> [91] -584709.631 -565843.210 -604252.152 -616885.977 -522011.655 >> -576824.263 -726170.003 -822902.735 -897385.940 -668897.194 >> [101] -525227.323 -493291.723 -559480.809 -627790.133 -607923.974 >> -535240.664 -346627.878 -343257.607 -287171.179 -324723.615 >> [111] -389052.208 -420393.385 -498589.819 -542040.688 -394442.745 >> -183163.637 -126540.029 -186213.012 -179799.971 -364410.639 >> [121] -309555.880 -357052.251 -321362.137 -394878.460 -498785.071 >> -309942.686 -276417.534 -337700.381 -304804.510 -238100.600 >> [131] -261210.843 -201821.616 -299377.673 -232015.614 -121752.676 >> -154925.661 -145809.729 15840.738 145755.754 -33601.212 >> [141] -24323.630 35036.731 55156.441 48603.824 87203.646 >> 139653.449 111722.558 101036.307 153884.464 153151.263 >> [151] 112680.914 108730.812 110198.055 127087.033 77174.238 >> -67632.638 -35129.976 56801.006 6712.631 8838.200 >> [161] 40086.874 -29691.225 -55861.564 7561.504 91232.944 >> 31752.447 1694.756 -43835.544 2522.883 41727.218 >> [171] 26918.990 128692.011 114752.327 131455.862 127149.113 >> 144686.214 160344.465 102204.088 130322.785 70392.818 >> [181] 100384.523 210138.826 230235.443 211137.595 199770.103 >> 167185.988 103951.789 125589.859 224791.286 302672.172 >> [191] 268148.251 258709.018 263356.469 122460.767 103103.124 >> 1996.530 55150.667 148763.608 188425.704 172693.650 >> [201] 173253.653 101070.947 142112.846 112317.201 101550.125 >> 157215.618 184009.183 60265.750 94310.493 123499.949 >> [211] 174061.906 247635.961 268679.388 277766.454 307758.389 >> 357310.030 178755.543 127887.604 99974.033 138429.524 >> [221] 119383.635 49204.240 51923.431 68469.511 63187.005 >> 214353.285 394362.626 238075.491 94333.586 -13273.666 >> [231] -79469.532 -40806.205 -76871.578 -49806.672 1228.690 >> -38687.429 -55499.077 -102810.705 -83816.775 -60862.409 >> [241] -66168.008 -78153.236 -33324.097 -92072.137 -135488.177 >> -179163.704 -112465.506 -15616.185 29229.741 -34415.330 >> [251] -32972.658 17278.772 -39965.022 -112357.551 -141587.923 >> -105968.196 -109854.967 -133479.542 -135685.520 -173992.141 >> [261] -152909.182 -131791.656 -166530.917 -228831.447 -350692.928 >> -418850.501 -495572.140 -539540.225 -632322.131 -728383.982 >> [271] -706613.842 -572388.522 -313981.672 -529208.500 -484367.815 >> -396279.857 -424551.369 -363920.897 -357247.042 -338639.919 >> [281] -298365.860 -295808.318 -296616.571 -275798.300 -378353.975 >> -448394.813 -517904.514 -665762.732 -706816.178 -702220.686 >> [291] -741409.378 -815699.314 -749468.808 -648206.337 -538353.298 >> -507039.293 -545760.353 -752355.424 -781048.382 -700609.954 >> [301] -787629.865 -920471.910 -987297.058 -1101214.452 -1164491.033 >> -1233146.792 -1187575.379 -967913.570 -830991.543 -1017500.681 >> [311] -1250575.007 -1416678.263 -1402879.243 -1251974.831 -1023492.832 >> -1026830.185 -1293833.488 -1516913.350 -1557436.391 -1718719.068 >> [321] -1725813.094 -1658967.540 -1643884.838 -1849296.409 -1891710.750 >> -1623420.016 -1286998.600 -1260085.087 -1381181.790 -1191308.082 >> [331] -977525.224 -1158107.546 -1270227.479 -930469.578 -526018.105 >> -714733.479 -977507.860 -1207830.910 -991946.711 -769735.051 >> [341] -970481.838 -1224850.395 -1349246.203 -1428091.218 -1494887.500 >> -1376951.938 -1367801.367 -1353437.568 -1361260.296 -1438702.417 >> [351] -1502473.526 -1652947.018 -1767153.073 -1517986.198 -1273778.527 >> -1009474.240 -1000104.286 -1061987.549 -975002.278 -945633.852 >> [361] -1211242.890 -1419950.962 -1533983.821 -1551817.331 -1636464.444 >> >> >> Thoughts? >> >> Thank you, >> Katrina >> >> [[alternative HTML version deleted]] >> >> ______________________________**________________ >> R-help@r-project.org mailing list >> https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help> >> PLEASE do read the posting guide http://www.R-project.org/** >> posting-guide.html <http://www.R-project.org/posting-guide.html> >> and provide commented, minimal, self-contained, reproducible code. >> > > David Winsemius, MD > West Hartford, CT > > -- Katrina E. Bennett PhD Student University of Alaska Fairbanks International Arctic Research Center 930 Koyukuk Drive, PO Box 757340 Fairbanks, Alaska 99775-7340 907-474-1939 office 907-385-7657 cell kebenn...@alaska.edu Personal Address: UAF, PO Box 752525 Fairbanks, Alaska 99775-2525 bennett.katr...@gmail.com [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.