我是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
(这让我感到困扰,因为这对我来说并不像平常的天花板功能。)
任何帮助或/和解释都将不胜感激。
答案 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