# Import lpSolve package library(lpSolve) # Set coefficients of the objective function f.obj <- c(8, 11, 6, 4) # Set matrix corresponding to coefficients of constraints by rows f.con <- matrix(c(5, 7, 0, 3, 8, 0, 4, 4, 2, 10, 6, 4), nrow = 3, byrow = TRUE) # Set unequality/equality signs f.dir <- c("<=", "<=", "<=") # Set right hand side coefficients f.rhs <- c(14, 12, 15) # Final value (z) lp("max", f.obj, f.con, f.dir, f.rhs, int.vec = 1:4, all.bin = TRUE) # Variables final values lp("max", f.obj, f.con, f.dir, f.rhs, int.vec = 1:4, all.bin = TRUE)$solution # Sensitivities lp("max", f.obj, f.con, f.dir, f.rhs, int.vec = 1:4, compute.sens = TRUE, all.bin = TRUE)$sens.coef.from lp("max", f.obj, f.con, f.dir, f.rhs, int.vec = 1:4, compute.sens = TRUE, all.bin = TRUE)$sens.coef.too # Dual Values (first dual of the constraints and then dual of the variables) # Duals of the constraints and variables are mixed lp("max", f.obj, f.con, f.dir, f.rhs, int.vec = 1:4, compute.sens = TRUE, all.bin = TRUE)$duals # Duals lower and upper limits: lp("max", f.obj, f.con, f.dir, f.rhs, int.vec = 1:4, compute.sens = TRUE, all.bin = TRUE)$duals.from lp("max", f.obj, f.con, f.dir, f.rhs, int.vec = 1:4, compute.sens = TRUE, all.bin = TRUE)$duals.to
Write, Run & Share R Language code online using OneCompiler's R Language online compiler for free. It's one of the robust, feature-rich online compilers for R language, running on the latest version 3.4. Getting started with the OneCompiler's R Language compiler is simple and pretty fast. The editor shows sample boilerplate code when you choose language as R
and start coding.
R is very popular for data analytics which was created by Ross Ihaka and Robert Gentleman in 1993. Many big companies like Google, Facebook, Airbnb etc uses this language for data analytics. R is good for software developers, statisticians and data miners.
Data type | Description | Usage |
---|---|---|
Numeric | To represent decimal values | x=1.84 |
Integer | To represent integer values, L tells to store the value as integer | x=10L |
Complex | To represent complex values | x = 10+2i |
Logical | To represent boolean values, true or false | x = TRUE |
Character | To represent string values | x <- "One compiler" |
raw | Holds raw bytes |
Variables can be assigned using any of the leftward, rightward or equal to operator. You can print the variables using either print or cat functions.
var-name = value
var-name <- value
value -> var-name
If, If-else, Nested-Ifs are used when you want to perform a certain set of operations based on conditional expressions.
if(conditional-expression){
#code
}
if(conditional-expression){
#code if condition is true
} else {
#code if condition is false
}
if(condition-expression1) {
#code if above condition is true
} elseif(condition-expression2){
#code if above condition is true
}
elseif(condition-expression3) {
#code if above condition is true
}
...
else {
#code if all the conditions are false
}
Switch is used to execute one set of statement from multiple conditions.
switch(expression, case-1, case-2, case-3....)
For loop is used to iterate a set of statements based on a condition.
for (value in vector) {
# code
}
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while(condition) {
# code
}
Repeat is used tyo iterate a set of statements with out any condition. You can write a user-defined condition to exit from the loop using IF
.
repeat {
#code
if(condition-expression) {
break
}
}
Function is a sub-routine which contains set of statements. Usually functions are written when multiple calls are required to same set of statements which increases re-usuability and modularity.
func-name <- function(parameter_1, parameter_2, ...) {
#code for function body
}
function_name (parameters)
Vector is a basic data strucre where sequence of data values share same data type.
For example, the below statement assigns 1 to 10 values to x.
You can also use se() function to create vectors.
x <- 1:10
#using seq() function
x <- seq(1, 10, by=2)
the above statement prints the output as [1] 1 3 5 7 9
.