索引小数位的舍入

索引小数位的舍入

问题描述:

我创建了一个“信任政治”指数 - 聚合5个变量,所有这些变量都测量了从1-10开始的某种形式的信任。索引小数位的舍入

attach(ess_variablen) 
aggr_trst <- (1/5)*(trst_prl+trst_leg+trst_part+trst_politic+trst_polit) 

然而,结果现在包含1个小数,而我想圆的数量,以免在索引号的任何小数。

我一直无法找到解决方法,以便对由索引创建的数值进行舍入。有谁知道如何实现这一目标?谢谢!

+0

您可以将编程语言添加到变量并显示值声明,以便代码可以编译。我没有看到你正在谈论的任何四舍五入的事情。 –

+0

恐怕我在这件事上很缺乏经验(对不起!)。我使用R,值是数字,因为所有5个变量都是从0到10。因此,我的索引中的数据是5.8,3.2等数字。这些是我想要舍入的数字,5.8会变成6,3.2会变成3. – Cantablu

编辑:好像以前的解决方案并不适用于不便深表歉意

你可以尝试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

+0

好吧,如果我的索引被称为aggr_trst,它将是 'Fix(aggr_trst)' 对不对? – Cantablu

+0

是的,它应该是 – CharybdeBE

+0

嗯,如果我使用'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 
+0

我不太确定我明白这一点right ... runif(20)代表什么? – Cantablu

+0

我使用20个统一的随机数runif(20)创建了一个样本数据框,我将它转换为矩阵,然后转换为数据框。 –