gpt4 book ai didi

r - 有条件地替换数据框中的字符串

转载 作者:行者123 更新时间:2023-12-02 08:01:37 25 4
gpt4 key购买 nike

DF <- data.frame("ID" = c(901, 902, 903, 904, 909), "INT" = c(0, 1, 0, 1, 1))

> DF
ID INT
1 901 0
2 902 1
3 903 0
4 904 1
5 909 1

我想在 INT = 1 时替换 ID 列中的“9”,因此,它应该如下所示:
 New_DF
ID INT
1 901 0
2 802 1
3 903 0
4 804 1
5 809 1

我试过这个
if(DF$INT == "1") {
gsub("^9", "8", DF$ID)
}

它给了我以下错误:

Warning message: In if (DF$INT == "1") { : the condition has length > 1 and only the first element will be used

最佳答案

您需要使用 ifelse()功能。

DF$ID <- ifelse(DF$INT == 1,  gsub("^9", "8", DF$ID), DF$ID)

使用 dplyr :
DF %>% 
mutate(ID=ifelse(INT==1,gsub("^9","8",ID),ID))

这将运行 gsubDF$INT == 1 的行上, 如果它不是 1 那么它将保持不变。
if()您使用的功能:
if(DF$INT == "1") { }

不适用于 data.frame s。 if()函数使用 只有检查某事(如语句)是 TRUE 还是 FALSE。例如:
if(use_new_function == "on"){ 
run_new_function()
}

关于r - 有条件地替换数据框中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56554114/

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