gpt4 book ai didi

仅当满足其他列中的条件时才替换字符串

转载 作者:行者123 更新时间:2023-12-02 15:18:00 24 4
gpt4 key购买 nike

我有一个数据框

test<-data.frame(A=c("aa","be","cg","dh"),B=c("i","i","i","i"))

A B
1 aa i
2 be i
3 cg i
4 dh i

我想将 B 列中的 i 替换为 yes 仅当 B 列中的字符串 >e 被发现。

所以最后应该是这样的

  A   B
1 aa i
2 be yes
3 cg i
4 dh i

我试过了

test[(grep("e", test$A)),] <- as.data.frame(lapply(test, gsub, pattern=      "i", replacement="yes", test$B))

虽然两个部分单独工作,但组合并没有给我想要的输出

最佳答案

有很多方法可以解决这个问题。在 data.table 中执行此操作的一种绝妙方法:

test<-data.frame(A=c("aa","be","cg","dh"),B=c("i","i","i","i"))
library(data.table)
test = as.data.table(test)
test[grepl("e",A),B := "yes"]

或在 dplyr 中:

test<-data.frame(A=c("aa","be","cg","dh"),B=c("i","i","i","i"))
library(dplyr)
test = tbl_df(test)
test %>% mutate(B = ifelse(grepl("e",A),"yes",B))

关于仅当满足其他列中的条件时才替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39213720/

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