2017-08-07 100 views
0

我有以下格式的數據。將值範圍轉換爲名稱

ID LoanAmtBin 
1 20000 
2 120000 
3 90000 
4 50000 
5 50000 

我想將範圍內的值更改爲名稱。舉例來說,如果貸款爲10000介於0和它應有的名字10K,如果它的10,001至25,000它應該有25K的名稱等

所需的表:

ID LoanAmtBin 
1 25K 
2 250K 
3 100K 
4 50K 
5 50K 

我已經將LoanAmtBin列轉換爲數字。然後,我使用下面這行代碼將每個值轉換爲名稱。

LAmtCut <- cut(cleancc$LoanAmtBin, breaks = c(0, 10000, 25000, 50000, 100000, 250000, 500000, 1000000), 
      labels = c("10K", "25K", "50K", "100K", "250K", "500K", "1Mil")) 

當我運行LAmtCut時,它顯示我想要在控制檯中的標籤。但是,我的數據框中的列沒有更改。如何獲取數據框中的值以更改?

回答

1

你的數據幀(DF)沒有改變的原因是因爲cut函數輸出一個向量,但是你沒有把該輸出分配回DF的一列。如果你想更新你的DF,那麼你需要將結果返回給一個列。您可以使用$運營商來完成此操作。

例子:

test <- data.frame(ID = c(10000, 20000, 20000, 30000, 30000, 40000)) 

# outputs a factor vector 
labs <- cut(test$ID, breaks = c(0, 10000, 20000, 30000, 40000, 50000), 
    labels = c("10k", "20k", "30k", "40k", "50k")) 

# updates the data frame 
test$ID <- labs 

注意IDfactor變量而不是一個字符變量爲好,這是值得記住當你繼續你的分析,因爲他們在如何可以操作不同上。

+0

簡單的修復,謝謝。 – Eitan