elegant way to write a function [closed] - r

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 2 years ago.
Improve this question
What is a more elegant way to write the below function. I am trying to practice my function development skills, and I am simply trying to manually recreate the CIs of a linear model. I am very well aware of the confint(model) function, but still...
jad<-function(x, y) {
model<-lm(y~x)
std.err<-coef(summary(model))[, 2]
coef.model1<-coef(summary(model))[, 1]
upper.ci<-coef.model1+1.96*std.err
lower.ci<-coef.model1-1.96*std.err
print(upper.ci)
print(lower.ci)
}

What about the code below?
jad <- function(x, y) {
`colnames<-`(
coef(summary(lm(y ~ x)))[,1:2] %*% matrix(c(1, 1.96, 1, -1.96), nrow = 2),
c("upper.ci", "lower.ci")
)
}

Related

How to solve nonlinear equations in R [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
For example, I try to solve for x: 12*exp(-2x/4)=0.5, or x^2+3x^4+9x^5=10, is there any method in R to solve such equations?
Try with uniroot function
r1 <- uniroot(function(x) 12*exp(-x/2) - 0.5, c(-1000, 1000))
r2 <- uniroot(function(x) x^2 + 3*x^4 + 9*x^5 - 10, c(-1000, 1000))
r1$root
[1] 6.356108
r2$root
[1] 0.943561
You have to define:
a function of the type f(x) = 0 (and remove the second member of equality)
an interval within which to search for the solution

Numerically Solving equations with Standard Normal CDF and PDF (Optimization) using R [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
How do we go about numerically solving equations of the sort below using R?
Please note, this can be shown to be convex and there is a separate thread on this.
https://stats.stackexchange.com/questions/158042/convexity-of-function-of-pdf-and-cdf-of-standard-normal-random-variable
This question has been posted on the Mathematics Forum to get Closed Form or other Theoretical Approaches, but it seems numerically solutions are the way to go?
https://math.stackexchange.com/questions/2689251/solving-equations-with-standard-normal-cdf-and-pdf-optimization
You can use the build in optimize function to directly optimize the original function:
g <- function(x, xi) {
(xi * x + dnorm(xi * x) / pnorm(xi * x))
}
fun <- function(x, xi, K) {
K * g(x, xi) + (K - x) * g((K - x), xi)
}
optimize(fun, interval = c(0, 10), xi = 1, K = 1)
#> $minimum
#> [1] 1.173975
#>
#> $objective
#> [1] 1.273246
Your original problem f(x) = g(x) can be formulated as a root finding problem f(x) - g(x) = 0. You can then use the uniroot function to solve that. See ?uniroot for details.

R coding for random value with contraint [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I want to know R code for generating 1000 random values for x and y between 1 to 7 such that x<=y and all the numbers are identically distributed.
With float number
x <- c()
y <- c()
for (i in 1:1000){
x[i] <- runif(1, 1, 7)
y[i] <- runif(1, x[i], 7)
// print or do something you want here
}
With integer number
x <- c()
y <- c()
for (i in 1:1000){
x[i] <- sample(1:7, 1)
y[i] <- sample(x[i]:7, 1)
// print or do something you want here
}
You can try it.

Normal Distribution in R. Finding P [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
I'm having trouble solving a normal distribution problem in R. I'm unfamiliar with the syntax and would like some help.
If X~N(2,9), compute
a. P(X>=2)
b. P(1<=X<7)
c. P(-2.5<=X<-1)
d. P(-3<=X-2<3)
You are looking for the pnorm function. This is the normal CDF. So you want to do something like:
# A
1 - pnorm(2, mean = 2, sd = 9) # = 0.5
# B
pnorm(7, mean = 2, sd = 9) - pnorm(1, mean = 2, sd = 9) # = 0.255
I think you can figure out the last two yourself.

solving recurences [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
T(n)=T(n-1) + lgn
My approach is:
Substituting n-1,n-2,n-3
Finally we get,
T(n)=T(1) + lg 2 +lg 3 and so lg n
=> T(n) = lg(2*3*4*5 n)
Hence T(n)=lg(n!).
But they give the answer as nlgn.
Is this a problem for computing complexity? If so then both you and "they" are correct.
O(lg(n!)) = O(lg(n^n)) = O(n lg(n))
More rigorously, from Stirling formula:
lg(n!) = n lg(n) - n + O(ln(n))
Therefore
O(lg(n!)) = O(n lg(n)) + O(n) + O(ln(n)) = O(n lg(n))

Resources