我的数据格式如下。
ID LoanAmtBin
1 20000
2 120000
3 90000
4 50000
5 50000
我想将范围内的值更改为名称。例如,如果贷款介于0和10,000之间,则其名称应为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时,它会在控制台中显示我想要的标签。但是,我的数据框中的列没有变化。如何更改数据框中的值?
答案 0 :(得分: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
请注意,ID
是一个factor
变量,而不是字符变量,在您继续分析时要记住这一点,因为它们的操作方式不同。