2017-12-18 249 views
-2

我創建了一個「信任政治」指數 - 聚合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

回答

-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

+0

好吧,如果我的索引被稱爲aggr_trst,它將是 'Fix(aggr_trst)' 對不對? – Cantablu

+0

是的,它應該是 – CharybdeBE

+0

嗯,如果我使用'Fix()'彈出一個新的窗口,代碼以'structure(c(5.8,0.4等)')顯示與以前完全相同的數字(帶小數)開頭。 .. 是否有可能需要安裝一個特定的軟件包才能使用此命令? – Cantablu

0

當使用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)創建了一個樣本數據框,我將它轉換爲矩陣,然後轉換爲數據框。 –