gpt4 book ai didi

根据条件 (`if` ) 语句替换数据框中的值

转载 作者:行者123 更新时间:2023-12-02 10:46:17 25 4
gpt4 key购买 nike

在下面编码的 R 数据框中,我想替换 B 的所有时间与 b 一起出现。

junk <- data.frame(x <- rep(LETTERS[1:4], 3), y <- letters[1:12])
colnames(junk) <- c("nm", "val")

这提供了:

   nm val
1 A a
2 B b
3 C c
4 D d
5 A e
6 B f
7 C g
8 D h
9 A i
10 B j
11 C k
12 D l

我最初的尝试是使用 forif 语句,如下所示:

for(i in junk$nm) if(i %in% "B") junk$nm <- "b"

但我相信您可以看到,这会将 junk$nm 的所有值替换为 b。我可以明白为什么这样做,但我似乎无法让它只替换那些原始值为 B 的 junk$nm 情况。

注意:我设法用 gsub 解决了这个问题,但为了学习 R,我仍然想知道如何让我原来的方法发挥作用(如果可能的话)

最佳答案

更容易将 nm 转换为字符然后进行更改:

junk$nm <- as.character(junk$nm)
junk$nm[junk$nm == "B"] <- "b"

编辑:如果您确实需要维护 nm 作为因子,请在最后添加以下内容:

junk$nm <- as.factor(junk$nm)

关于根据条件 (`if` ) 语句替换数据框中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5824173/

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