This is what I am starting with: initial<- matrix(c(1,5,4,8,4,4,8,6,4,2,7,5,4,5,3,2,4,6), nrow=6, ncol=3,dimnames=list(c("1900","1901","1902","1903","1904","1905"), c("sample1","sample2","sample3"))) And I need to apply a filter (in this case, any value <5) to give me one dataframe with only the 'less than 5' values and with '0' place holders on the values that don't meet this criteria. The second dataframe is the same but for those values >=5. Should look like this: less <- matrix(c(1,0,4,0,4,4,0,0,4,2,0,0,4,0,3,2,4,0), nrow=6, ncol=3,dimnames=list(c("1900","1901","1902","1903","1904","1905"), c("sample1","sample2","sample3"))) more <- matrix(c(0,5,0,8,0,0,8,6,0,0,7,5,0,5,0,0,0,6), nrow=6, ncol=3,dimnames=list(c("1900","1901","1902","1903","1904","1905"), c("sample1","sample2","sample3"))) Any ideas? -- View this message in context: http://r.789695.n4.nabble.com/conditional-filter-resulting-in-2-new-dataframes-tp3742232p3742232.html Sent from the R help mailing list archive at Nabble.com.
Jorge Ivan Velez
2011-Aug-14 07:23 UTC
[R] conditional filter resulting in 2 new dataframes
Hi, Try ifelse(initial < 5, initial, 0) ifelse(initial >= 5, initial, 0) and take a look at ?ifelse HTH, Jorge On Sat, Aug 13, 2011 at 9:02 PM, andrewjt <> wrote:> This is what I am starting with: > > initial<- matrix(c(1,5,4,8,4,4,8,6,4,2,7,5,4,5,3,2,4,6), nrow=6, > ncol=3,dimnames=list(c("1900","1901","1902","1903","1904","1905"), > c("sample1","sample2","sample3"))) > > And I need to apply a filter (in this case, any value <5) to give me one > dataframe with only the 'less than 5' values and with '0' place holders on > the values that don't meet this criteria. The second dataframe is the same > but for those values >=5. > > Should look like this: > less <- matrix(c(1,0,4,0,4,4,0,0,4,2,0,0,4,0,3,2,4,0), nrow=6, > ncol=3,dimnames=list(c("1900","1901","1902","1903","1904","1905"), > c("sample1","sample2","sample3"))) > more <- matrix(c(0,5,0,8,0,0,8,6,0,0,7,5,0,5,0,0,0,6), nrow=6, > ncol=3,dimnames=list(c("1900","1901","1902","1903","1904","1905"), > c("sample1","sample2","sample3"))) > > Any ideas? > > > > -- > View this message in context: > http://r.789695.n4.nabble.com/conditional-filter-resulting-in-2-new-dataframes-tp3742232p3742232.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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. >[[alternative HTML version deleted]]
Hi: Use replace(): replace(initial, initial < 5, 0) sample1 sample2 sample3 1900 0 8 0 1901 5 6 5 1902 0 0 0 1903 8 0 0 1904 0 7 0 1905 0 5 6 replace(initial, initial >= 5, 0) sample1 sample2 sample3 1900 1 0 4 1901 0 0 0 1902 4 4 3 1903 0 2 2 1904 4 0 4 1905 4 0 0 HTH, Dennis On Sat, Aug 13, 2011 at 6:02 PM, andrewjt <atrant at mun.ca> wrote:> This is what I am starting with: > > initial<- matrix(c(1,5,4,8,4,4,8,6,4,2,7,5,4,5,3,2,4,6), nrow=6, > ncol=3,dimnames=list(c("1900","1901","1902","1903","1904","1905"), > c("sample1","sample2","sample3"))) > > And I need to apply a filter (in this case, any value <5) to give me one > dataframe with only the 'less than 5' values and with '0' place holders on > the values that don't meet this criteria. The second dataframe is the same > but for those values >=5. > > Should look like this: > less <- matrix(c(1,0,4,0,4,4,0,0,4,2,0,0,4,0,3,2,4,0), nrow=6, > ncol=3,dimnames=list(c("1900","1901","1902","1903","1904","1905"), > c("sample1","sample2","sample3"))) > more <- matrix(c(0,5,0,8,0,0,8,6,0,0,7,5,0,5,0,0,0,6), nrow=6, > ncol=3,dimnames=list(c("1900","1901","1902","1903","1904","1905"), > c("sample1","sample2","sample3"))) > > Any ideas? > > > > -- > View this message in context: http://r.789695.n4.nabble.com/conditional-filter-resulting-in-2-new-dataframes-tp3742232p3742232.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at 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. >
Reasonably Related Threads
- computing marginal values based on multiple columns?
- Converting Strings to Variable names
- phantom NA/NaN/Inf in foreign function call (or something altogether different?)
- average columns of data frame corresponding to replicates
- Problem in converting natural numbers to bits and others