是否有一种简单的方法可以让某个范围之间的值等于一个字母?因此,在以下示例中,我将如何转换df中的所有值,以便:
一个小示例数据集:
df1 <- rnorm (100, mean = 1, sd = 0.3)
df2 <- rnorm (100, mean = 5, sd = 1.6)
df <- cbind(df1,df2)
答案 0 :(得分:3)
as.data.frame(apply(df,2, function(x) cut(x, c(-Inf,1,5,Inf), labels=c('A','B','C'))))
# df1 df2
# 1 A C
# 2 A C
# 3 B B
# 4 A C
# 5 A C
# 6 A B
# 7 A C
# 8 B B
# 9 B C
# 10 A C
在为外边界创建切割点时,请务必使用-Inf
和Inf
。它包含在apply
函数中,以便在每列上重复该过程。