索引小数位的舍入
我创建了一个“信任政治”指数 - 聚合5个变量,所有这些变量都测量了从1-10开始的某种形式的信任。索引小数位的舍入
attach(ess_variablen)
aggr_trst <- (1/5)*(trst_prl+trst_leg+trst_part+trst_politic+trst_polit)
然而,结果现在包含1个小数,而我想圆的数量,以免在索引号的任何小数。
我一直无法找到解决方法,以便对由索引创建的数值进行舍入。有谁知道如何实现这一目标?谢谢!
编辑:好像以前的解决方案并不适用于不便深表歉意
你可以尝试ceiling()
和floor()
功能根据您的需求
notRound <- (1/5) * (1.2+2.3+3.3)
print(notRound)
roundUp <- ceiling(notRound)
print(roundUp)
roundDown <- floor(notRound)
print(roundDown)
摘录生活,如果你想尝试 http://rextester.com/WURVZ7294
好吧,如果我的索引被称为aggr_trst,它将是 'Fix(aggr_trst)' 对不对? – Cantablu
是的,它应该是 – CharybdeBE
嗯,如果我使用'Fix()'弹出一个新的窗口,代码以'structure(c(5.8,0.4等)')显示与以前完全相同的数字(带小数)开头。 .. 是否有可能需要安装一个特定的软件包才能使用此命令? – Cantablu
当使用0作为小数位数时,可以使用round()
函数四舍五入到最接近的整数。以下示例通过对统一随机数据帧中的行进行求和来说明这一点。
set.seed(950141237)
data <- as.data.frame(matrix(runif(20),nrow=5,ncol=4))
data
data$index <- round(rowSums(data),0) # round to 0 decimal places to obtain whole numbers
data
...和输出。
> set.seed(950141237)
> data <- as.data.frame(matrix(runif(20),nrow=5,ncol=4))
> data
V1 V2 V3 V4
1 0.07515484 0.8874008 0.37130877 0.05977506
2 0.30097513 0.8178419 0.05203982 0.10694951
3 0.82328607 0.4182799 0.24034152 0.52173278
4 0.52849399 0.8690592 0.66814229 0.66475498
5 0.01914658 0.8322007 0.41399458 0.19649338
> data$index <- round(rowSums(data),0) # round to 0 decimal places to obtain whole numbers
> data
V1 V2 V3 V4 index
1 0.07515484 0.8874008 0.37130877 0.05977506 1
2 0.30097513 0.8178419 0.05203982 0.10694951 1
3 0.82328607 0.4182799 0.24034152 0.52173278 2
4 0.52849399 0.8690592 0.66814229 0.66475498 3
5 0.01914658 0.8322007 0.41399458 0.19649338 1
我不太确定我明白这一点right ... runif(20)代表什么? – Cantablu
我使用20个统一的随机数runif(20)创建了一个样本数据框,我将它转换为矩阵,然后转换为数据框。 –
您可以将编程语言添加到变量并显示值声明,以便代码可以编译。我没有看到你正在谈论的任何四舍五入的事情。 –
恐怕我在这件事上很缺乏经验(对不起!)。我使用R,值是数字,因为所有5个变量都是从0到10。因此,我的索引中的数据是5.8,3.2等数字。这些是我想要舍入的数字,5.8会变成6,3.2会变成3. – Cantablu