gpt4 book ai didi

r - 有没有一种基本的方法可以用标签替换 R 的级别整数编码?

转载 作者:行者123 更新时间:2023-12-01 23:16:12 26 4
gpt4 key购买 nike

这是我在这里的第一个问题,所以我希望它适合这个论坛。非常感谢任何关于如何改进问题或标题的建议。

给定

> experiment <- data.frame(old=factor(c("z","z","z","z","z"),levels=c("x","y","z")),
new=factor(c("y","z","x",NA,NA),levels=c("x","y","z")))
> experiment
old new
1 z y
2 z z
3 z x
4 z <NA>
5 z <NA>

我想在新的不适用时用新的更新旧的。命令

> experiment$old <- ifelse(is.na(experiment$new),experiment$old,experiment$new)

似乎是我想要的,除了我得到的是 R 的级别整数编码而不是标签本身:

> experiment
old new
1 2 y
2 3 z
3 1 x
4 3 <NA>
5 3 <NA>

是否有一些基本的方法可以将 R 的级别整数编码转换回标签?我希望得到

> experiment
old new
1 y y
2 z z
3 x x
4 z <NA>
5 z <NA>

作为输出。

非常感谢。

最佳答案

ifelse() 将不起作用,因为它会删除属性。这个很好,因为列共享因子水平。我们可以使用 within() 如下:

within(experiment, { old[!is.na(new)] <- new[!is.na(new)] })
# old new
# 1 y y
# 2 z z
# 3 x x
# 4 z <NA>
# 5 z <NA>

关于r - 有没有一种基本的方法可以用标签替换 R 的级别整数编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49950312/

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