将值范围转换为名称
问题描述:
我有以下格式的数据。将值范围转换为名称
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时,它显示我想要在控制台中的标签。但是,我的数据框中的列没有更改。如何获取数据框中的值以更改?
答
你的数据帧(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
注意ID
是factor
变量而不是一个字符变量为好,这是值得记住当你继续你的分析,因为他们在如何可以操作不同上。
简单的修复,谢谢。 – Eitan