r - 如何用 R 中的分类标签替换数据框中的数值?

标签 r

如何替换此数据框的数值:

df <- data.frame(num = 1:10, num2=-8:1, num3=2:11)
df <- as.matrix(df)

切入标签?

df_categ <- cut(df, breaks = c(-Inf, 2, 4, Inf), labels=c("DOWN", "NORM", "UP"))

cut 给出一个列表。但我需要替换原始 df 中的数字元素

最佳答案

我们可以使用[]将其转换为原始属性

df[] <- as.character(df_categ)

我们可以使用原始的 data.frame,而不是将“df”转换为矩阵

library(dplyr)
df <- df %>%
   mutate(across(everything(), cut, 
         breaks = c(-Inf, 2, 4, Inf), labels = c("DOWN", "NORM", "UP")))
df
    num num2 num3
1  DOWN DOWN DOWN
2  DOWN DOWN NORM
3  NORM DOWN NORM
4  NORM DOWN   UP
5    UP DOWN   UP
6    UP DOWN   UP
7    UP DOWN   UP
8    UP DOWN   UP
9    UP DOWN   UP
10   UP DOWN   UP

或者使用base R中的lapply

df[] <- lapply(df,  cut, breaks = c(-Inf, 2, 4, Inf),
        labels = c("DOWN", "NORM", "UP"))

关于r - 如何用 R 中的分类标签替换数据框中的数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68582307/

相关文章:

R:扩展一个序列,使得序列中任何成员的值成为它的位置,未填充的位置编码为 0 或 NA

r - 在 tryCatch 中的警告之前处理错误

r - 日期范围为 R 中的 1 或 0 系列

r - 如何使用ggplot2的x轴日期注释?

r - 绘制第三维热图

R 逐行查找 data.frame 中的特定值

r - 带有 if/else 函数的 mutate()

r install.packages 安装下载的包

r - R中的QR分解和Cholesky分解

R 绘图 : customize point attributes