使用R中的给定群集表替换data.frame的值

时间:2018-03-27 10:12:12

标签: r dataframe

我有一个名为' databasis'的数据框。在R中有以下数据

enter image description here

我正在尝试通过分配表' databasis'的每个百分比值来创建新的data.frame。以下群集表中的一封信。

enter image description here

例如,对于200202年的公司Aa,分配给该百分比的字母将等于C.

enter image description here

表格' databasis'

的代码
company <- c("Aa", "Bb", "Cc", "Dd") 
sector <- c("B", "A", "E", "Z") 
lastmarketcap <- c(18, 4571, 122, 239) 
X200202 <- c(0.0833, 0.0002, 0.00, 0.0085) 
X200203 <- c(0.2308, 0.00, 0.0083, 0.0042) 
X200204 <- c(0.125, 0.0007, 0.00, 0.0084) 


databasis <- data.frame(company, sector, lastmarketcap, X200202, X200203, X200204)

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

在这里,我们创建一个与图像中最大列对应的中断向量,与成绩列对应的标签,然后将每列切割成带有这些标签的因子。

breaks = c(-Inf,-0.05, 0, 0.05, 0.1, 0.15, 100)
labels = rev(LETTERS[1:6])
f <- function(col) cut(col, breaks = breaks, labels = labels)
new <- data.frame(databasis[1:3], lapply(databasis[-c(1:3)], f))
new
#   company sector lastmarketcap X200202 X200203 X200204
# 1      Aa      B            18       C       A       B
# 2      Bb      A          4571       D       E       D
# 3      Cc      E           122       E       D       E
# 4      Dd      Z           239       D       D       D