- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to create combinations of 0 and 1 with fixed number of 1s in each row in an R data frame?
To create the combinations of 0 and 1 data frame, we can use expand.grid function along with the rep function. If we want to create combination of 0 and 1 with fixed number of 1’s in each row then rowSums functions can be used with the appropriate sum value. For example, to have rows containing less than three 1’s, the rowSums will be extracted from grid for the same.
Example1
First<−expand.grid(rep(list(0:1),3)) First
Output
Var1 Var2 Var3 1 0 0 0 2 1 0 0 3 0 1 0 4 1 1 0 5 0 0 1 6 1 0 1 7 0 1 1 8 1 1 1
Creating combinations having number of 1s in each row less than or equal to 2 −
Example
First<−First[rowSums(First)<3,] First
Output
Var1 Var2 Var3 1 0 0 0 2 1 0 0 3 0 1 0 4 1 1 0 5 0 0 1 6 1 0 1 7 0 1 1
Example2
Second<−expand.grid(rep(list(0:1),4)) Second
Output
Var1 Var2 Var3 Var4 1 0 0 0 0 2 1 0 0 0 3 0 1 0 0 4 1 1 0 0 5 0 0 1 0 6 1 0 1 0 7 0 1 1 0 8 1 1 1 0 9 0 0 0 1 10 1 0 0 1 11 0 1 0 1 12 1 1 0 1 13 0 0 1 1 14 1 0 1 1 15 0 1 1 1 16 1 1 1 1
Example
Second<−Second[rowSums(Second)<4,] Second
Output
Var1 Var2 Var3 Var4 1 0 0 0 0 2 1 0 0 0 3 0 1 0 0 4 1 1 0 0 5 0 0 1 0 6 1 0 1 0 7 0 1 1 0 8 1 1 1 0 9 0 0 0 1 10 1 0 0 1 11 0 1 0 1 12 1 1 0 1 13 0 0 1 1 14 1 0 1 1 15 0 1 1 1
Example3
Third<−expand.grid(rep(list(0:1),5)) Third
Output
Var1 Var2 Var3 Var4 Var5 1 0 0 0 0 0 2 1 0 0 0 0 3 0 1 0 0 0 4 1 1 0 0 0 5 0 0 1 0 0 6 1 0 1 0 0 7 0 1 1 0 0 8 1 1 1 0 0 9 0 0 0 1 0 10 1 0 0 1 0 11 0 1 0 1 0 12 1 1 0 1 0 13 0 0 1 1 0 14 1 0 1 1 0 15 0 1 1 1 0 16 1 1 1 1 0 17 0 0 0 0 1 18 1 0 0 0 1 19 0 1 0 0 1 20 1 1 0 0 1 21 0 0 1 0 1 22 1 0 1 0 1 23 0 1 1 0 1 24 1 1 1 0 1 25 0 0 0 1 1 26 1 0 0 1 1 27 0 1 0 1 1 28 1 1 0 1 1 29 0 0 1 1 1 30 1 0 1 1 1 31 0 1 1 1 1 32 1 1 1 1 1
Example
Third<−Third[rowSums(Third)<3,] Third
Output
1 0 0 0 0 0 2 1 0 0 0 0 3 0 1 0 0 0 4 1 1 0 0 0 5 0 0 1 0 0 6 1 0 1 0 0 7 0 1 1 0 0 9 0 0 0 1 0 10 1 0 0 1 0 11 0 1 0 1 0 13 0 0 1 1 0 17 0 0 0 0 1 18 1 0 0 0 1 19 0 1 0 0 1 21 0 0 1 0 1 25 0 0 0 1 1
Advertisements