[R] able to estimate in the excel but not in R, any suggestion?
jim holtman
jho|tm@n @end|ng |rom gm@||@com
Thu Dec 23 07:57:15 CET 2021
You need to use the 'ifelse' function. I think I copied down your
formula and here is the output:
> daT<-structure(list(sd = c(0.481, 0.682, 0.741, 0.394, 0.2, 0.655, 0.375),
+ mcd = c(51.305, 51.284, 51.249, 51.2, 51.137, 51.059, 50.968), ca =
+ c(49.313, 69.985, 75.914, 40.303, 20.493, 66.905,38.185)), class =
+ "data.frame", row.names = c(NA, -7L))
> head(daT)
sd mcd ca
1 0.481 51.305 49.313
2 0.682 51.284 69.985
3 0.741 51.249 75.914
4 0.394 51.200 40.303
5 0.200 51.137 20.493
6 0.655 51.059 66.905
>
> # add in a new column with the calculation
>
> daT$ca_1 <- with(daT,
+ ifelse(sd > mcd * 2,
+ pi * mcd ^ 2,
+ (0.5 * sd) * sqrt(mcd^2 - (0.5 * sd)^2) +
+ mcd^2 * asin((0.5 * sd) / (mcd)) * 2
+ )
+ )
>
> daT
sd mcd ca ca_1
1 0.481 51.305 49.313 37.01651
2 0.682 51.284 69.985 52.46340
3 0.741 51.249 75.914 56.96310
4 0.394 51.200 40.303 30.25918
5 0.200 51.137 20.493 15.34110
6 0.655 51.059 66.905 50.16535
7 0.375 50.968 38.185 28.66948
>
Thanks
Jim Holtman
Data Munger Guru
What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.
On Wed, Dec 22, 2021 at 10:23 PM Marna Wagley <marna.wagley using gmail.com> wrote:
>
> Hi R users,
> I was trying to estimate some values in r but could not figure out how to
> write the script in r. Although I was able to estimate it correctly in the
> excel. For example I have the following data set.
>
> daT<-structure(list(sd = c(0.481, 0.682, 0.741, 0.394, 0.2, 0.655, 0.375),
> mcd = c(51.305, 51.284, 51.249, 51.2, 51.137, 51.059, 50.968), ca =
> c(49.313, 69.985, 75.914, 40.303, 20.493, 66.905,38.185)), class =
> "data.frame", row.names = c(NA, -7L))
> head(daT)
>
> In this data set, I need to estimate in the column name "ca", In the excel
> I estimated the value using the following formula:
> IF(A2>B2*2,PI()*B2^2,((0.5*A2)*SQRT(B2^2-(0.5*A2)^2)+B2^2*ASIN((0.5*A2)/B2))*2)
>
> But when I wrote the following code in the R, it did not work
> attach(daT)
> daT$ca<-if(sd>mcd*2,pi()*mcd^2,((0.5*sd)*sqrt(mcd^2-(0.5*sd)^2)+mcd^2*asin((0.5*sd)/mcd))*2)
>
> Your suggestion would be highly appreciated.
>
> Sincerely,
>
> MW
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
More information about the R-help
mailing list