天花板(rnorm)如何工作?

时间:2018-06-19 10:47:22

标签: r ceiling

我是R的新手。

目前我正在学习天花板代码如下: df4 <- data.frame(Y=rnorm(5),Z=ceiling(rnorm(5)))

我的问题是,在这种情况下上限是做什么的。

上面代码的结果如下:

       Y      Z
1 -0.5237500  0
2 -1.2548762 -1
3  0.9723432  0
4  0.1974542  1
5  1.3507062  1

(这让我感到困扰,因为这对我来说并不像平常的天花板功能。)

任何帮助或/和解释都将不胜感激。

4 个答案:

答案 0 :(得分:1)

天花板在这里没有产生预期的结果,因为Y中生成的向量与Z中生成的向量不同 - 在每个向量中,您正在采样一组新的数字。

你应该做的是:

library(dplyr)
df4 <- data.frame(Y=rnorm(5))
df4 <- df4 %>% mutate(Z = ceiling(Y))

答案 1 :(得分:1)

不使用任何包,首先创建随机数的dataframe并调用ceiling

df4 <- data.frame(Y=rnorm(5))
df4$Z <-ceiling(df4$Y)
df4
          Y   Z
1  0.3466323  1
2 -0.3913280  0
3 -1.8246212 -1
4 -0.1052592  0
5 -1.4643682 -1

答案 2 :(得分:0)

显然,Z=ceiling(rnorm(5))是指随机生成的Z值/ Z分数的上限。它与Y变量完全独立。还是谢谢。

答案 3 :(得分:0)

上限函数总是四舍五入到较大的数字,这意味着负数将沿零方向四舍五入。

在您的代码中,您将生成两个不同的数字集,因为伪随机数生成器不会回收/sign-in函数的旧值:

测试代码:

rnorm()

输出

set.seed(42)    
df <- data.frame(Y=rnorm(5),Z=rnorm(5))

所以天花板

   Y           Z  
1  1.3709584 -0.10612452  
2 -0.5646982  1.51152200  
3  0.3631284 -0.09465904  
4  0.6328626  2.01842371  
5  0.4042683 -0.06271410

创建输出

df4$Z <- ceiling(df4$Z)

如果要获得Y的上限,请使用:

   Y         Z
1  1.3709584 0
2 -0.5646982 2
3  0.3631284 0
4  0.6328626 3
5  0.4042683 0