如何替换此数据框的数值:
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/