如何根据R中的条件将数据从一列复制到另一列?

尼古拉斯·索里亚

我有下面的数据框,如下所示。

  Funct.Area Environment ServiceType Ticket.Nature SLA.Result..4P. IRIS.Priority Func_Environment
2        FUN         DCF         FUN            SR              OK        Medium          FUN-DCF
3  AME - FIN         DCF         FUN            SR          Defect        Medium    AME - FIN-DCF
4  EMEA -FIN         DCF         FUN            SR              OK        Medium    EMEA -FIN-DCF
5        APS         DCF         APS            SR          Defect        Medium          APS-DCF
6   EMEA -SC         DCF         FUN            SR              OK        Medium     EMEA -SC-DCF
7        SEC         DCF         SEC            SR              OK           Low          SEC-DCF

我需要从该字段Funct.Area中获取一个子集,以具有第一个3或4个字符,如果它们是“ EMEA”或“ AME”,则将该字段中的值替换为on Environment

我已经在StackOverflow中研究了类似的问题,但是由于遇到了问题,因此无法管理副本部分。

如果我应该尝试任何方法,有人可以指导我吗?

谢谢。

编辑#1:每个@akrun方法。

tickets$Funct.Area <- as.character(tickets$Funct.Area)
i1 <- with(tickets, grepl("^(EMEA|AME)", tickets$Funct.Area))
tickets$Funct.Area[i1] <- tickets$Func_Environment[i1]
head(tickets)
  Funct.Area Environment ServiceType Ticket.Nature SLA.Result..4P. IRIS.Priority Func_Environment
2        FUN         DCF         FUN            SR              OK        Medium          FUN-DCF
3         13         DCF         FUN            SR          Defect        Medium    AME - FIN-DCF
4         65         DCF         FUN            SR              OK        Medium    EMEA -FIN-DCF
5        APS         DCF         APS            SR          Defect        Medium          APS-DCF
6         66         DCF         FUN            SR              OK        Medium     EMEA -SC-DCF
7        SEC         DCF         SEC            SR              OK           Low          SEC-DCF

编辑2:

这是对我有用的解决方案。

tickets$Funct.Area <- as.character(tickets$Funct.Area)
tickets$Environment <- as.character(tickets$Environment)
i1 <- with(tickets, grepl("^(EMEA|AME)", tickets$Funct.Area))
tickets$Funct.Area[i1] <- tickets$Func_Environment[i1]
tickets$Funct.Area[i1] <- as.character(tickets$Environment[i1])

非常感谢@akrun。

阿克伦

我们创建一个逻辑索引('i1'),grepl用于检查^字符串开头()处的字符是'EMEA'还是(|)“ AME”。使用它,将“ Funct.Area”的元素替换为“ Funct_Environment”

i1 <- with(df1, grepl("^(EMEA|AME)", Funct.Area))
df1$Funct.Area[i1] <- df1$Func_Environment[i1] 
df1
#     Funct.Area Environment ServiceType Ticket.Nature SLA.Result..4P. IRIS.Priority Func_Environment
#2           FUN         DCF         FUN            SR              OK        Medium          FUN-DCF
#3 AME - FIN-DCF         DCF         FUN            SR          Defect        Medium    AME - FIN-DCF
#4 EMEA -FIN-DCF         DCF         FUN            SR              OK        Medium    EMEA -FIN-DCF
#5           APS         DCF         APS            SR          Defect        Medium         APS-DCF'
#6  EMEA -SC-DCF         DCF         FUN            SR              OK        Medium     EMEA -SC-DCF
#7           SEC         DCF         SEC            SR              OK           Low          SEC-DCF

数据

df1 <- structure(list(Funct.Area = c("FUN", "AME - FIN", "EMEA -FIN", 
"APS", "EMEA -SC", "SEC"), Environment = c("DCF", "DCF", "DCF", 
"DCF", "DCF", "DCF"), ServiceType = c("FUN", "FUN", "FUN", "APS", 
"FUN", "SEC"), Ticket.Nature = c("SR", "SR", "SR", "SR", "SR", 
"SR"), SLA.Result..4P. = c("OK", "Defect", "OK", "Defect", "OK", 
"OK"), IRIS.Priority = c("Medium", "Medium", "Medium", "Medium", 
"Medium", "Low"), Func_Environment = c("FUN-DCF", "AME - FIN-DCF", 
 "EMEA -FIN-DCF", "APS-DCF'", "EMEA -SC-DCF", "SEC-DCF")), .Names = c("Funct.Area", 
 "Environment", "ServiceType", "Ticket.Nature", "SLA.Result..4P.", 
"IRIS.Priority", "Func_Environment"), class = "data.frame", 
 row.names = c("2", 
 "3", "4", "5", "6", "7"))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将数据从一列复制到另一列并在 phpMyAdmin 中添加文本?

根据条件(使用熊猫)将值从一列复制到另一列

将条件值从一列复制到另一列

将满足条件的单个值从一列复制到另一列

如何将一列数据复制到Oracle中的另一列

根据另一列不为 NULL,将数据从一行复制到同一列中的另一行

将数据从一列复制到另一列

SQL将数据从一列复制到另一列

将数据从一列复制到另一列

如何将值从一列复制到另一列?

从 R 数据框中的特定行将数据从一列复制到另一列

检查上一行的值以将数据从一列复制到另一列

如何将数据从同一列的一列复制到另一列?

有条件地将值从一列复制到另一列

如果满足条件,pandas将值从一列复制到另一列

将因子级别顺序从一列复制到另一列

将时间戳值从一列复制到另一列失败

使用Pandas将值从一列复制到另一列

将数据从一列复制到另一列(位于另一张表和不同的数据库中)

将值从一列复制到同一表中的另一列

将数据从一列复制到另一列并处理空情况

根据第三列的数据将一列中的数据复制到另一张工作表上的另一列

使用MySQL将数据从一列复制到另一张表中的另一列

将数据从一个表复制到另一列未知的新表中

如何根据Excel中的标题将一列从一张纸复制到另一张纸?

使用Python熊猫根据条件将行值复制到另一列

根据条件将所有值复制到另一列

R函数在第三种情况下将数据从一列复制到另一列

根据另一变量将值从一列复制到其他多个列