我看到了一个类似的问题,但我不知道,该怎么做.也许你可以帮忙.
ES <- function(y, z){-y * (1-pnorm(y/z)) + z * dnorm(y/z)} # = x
ES(906.19, 707.1) #33.47587
Run Code Online (Sandbox Code Playgroud)
我想要的是为y求解,所以z和x(33.4)是已知的.我已经看到了solve和optim函数,但是我无法获得预期的结果.
谢谢!
我想用ggplot将对角线上方的区域着色为红色,将其下方的区域着色为绿色。我已经通读了 geom_ribbon,但据我所知,我只能指定 y 值。有人可以支持吗?非常感谢。
# Test data
df <- data.frame(
x = sample(1:100, 100, replace=FALSE),
y = sample(1:100, 100, replace=FALSE))
library(ggplot2)
g <- ggplot(data=df, aes(x=x, y=y))
g +
geom_point() +
geom_abline(intercept = 0, slope = 1)
# + geom_ribbon(aes(ymin=2 , ymax=50), fill="red", alpha=0.2) not working
Run Code Online (Sandbox Code Playgroud) 下面你可以看到我有一个更大的桌子的例子
library(data.table)
input <- data.table(ID = c("A", "B"),
Para = c(2.8, 5),
Value1 = c(50, 80),
Value2 = c(80, 40),
Value3 = c(80, 100),
Value4 = c(60, 10),
Value5 = c(40, 80))
Run Code Online (Sandbox Code Playgroud)
我想要实现的是添加一个列,其中包含Para列中指定的下一个x列的累积和.但如果逗号后面有数字,则应按数字调整列中的值.
所以对于第一行(Para = 2.8),结果应该是
1*50 + 1*80 + 0.8*80 = 194
Run Code Online (Sandbox Code Playgroud)
第二行(Para = 5)的结果应该是
1*80 + 1*40 + 1*100 + 1*10 + 1*80 = 310
Run Code Online (Sandbox Code Playgroud)
决赛桌应该是这样的
output <- cbind(input, Result = c(194, 310))
Run Code Online (Sandbox Code Playgroud)
我想到的是将Para值2.8分成5个数字的百分比向量,所以整个范围.
c(1, 1, .8, 0, 0)
Run Code Online (Sandbox Code Playgroud)
将Value1:Value5列与此向量相乘,然后将所有Value1:Value5相加.但是我不知道如何将2.8分成这样一个向量,也许还有一个我不了解的更好的解决方案.谢谢.