gpt4 book ai didi

用数据框中的文本替换数字

转载 作者:行者123 更新时间:2023-12-03 23:53:46 25 4
gpt4 key购买 nike

我确定有一个简单的答案,但我一直在搜索,但找不到任何关于此的内容。

我有一个数据框 (sdata),其中有一列名为“landcover”这是一个分类变量,但到目前为止,每种土地覆盖类型都由一个数字表示。

我想用文本替换地被数字代码,并想出了部分方法:

sdata$landcover<- as.factor(sdata$landcover)
levels(sdata$landcover) <- gsub("1", "w.subboreal", levels(sdata$landcover))
levels(sdata$landcover) <- gsub("2", "PICO", levels(sdata$landcover))
levels(sdata$landcover) <- gsub("3", "ABLA.PIEN", levels(sdata$landcover))
levels(sdata$landcover) <- gsub("5", "dry.forest", levels(sdata$landcover))
levels(sdata$landcover) <- gsub("10", "shrubby", levels(sdata$landcover))
levels(sdata$landcover) <- gsub("11", "agriculture", levels(sdata$landcover))
levels(sdata$landcover) <- gsub("13", "disturbed", levels(sdata$landcover))

这适用于单个数字,但例如,数字 13 变成“w.subborealABLA.PIEN”(即 1 和 3 的组合),数字 10 变成“w.subboreal0"(1 和 0 的组合)。如何确保将两位数视为一个数字,而不是两个单独的个位数字被替换?谢谢!

最佳答案

为什么不直接使用 factor 中的 labels

set.seed(1)
x <- sample(c(1, 2, 3, 5, 10, 11, 13), 20, TRUE)
x
# [1] 2 3 10 13 2 13 13 10 10 1 2 2 10 3 11 5 11 13 3 11
factor(x, levels = c(1, 2, 3, 5, 10, 11, 13),
labels = c("w.subboreal", "PICO", "ABLA.PIEN", "dry.forest",
"shrubby", "agriculture", "disturbed"))
# [1] PICO ABLA.PIEN shrubby disturbed PICO disturbed disturbed
# [8] shrubby shrubby w.subboreal PICO PICO shrubby ABLA.PIEN
# [15] agriculture dry.forest agriculture disturbed ABLA.PIEN agriculture
# Levels: w.subboreal PICO ABLA.PIEN dry.forest shrubby agriculture disturbed

关于用数据框中的文本替换数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21557685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com