gpt4 book ai didi

r - 如何搜索包含在字符串列表中的一部分字符串,并在R中返回匹配的字符串

转载 作者:行者123 更新时间:2023-12-04 10:28:53 28 4
gpt4 key购买 nike

以下数据框包含“广告系列”列,该列的值包含有关季节,名称和位置的信息,但是,这些信息的顺序在每一行中都是不同的。幸运的是,这些信息是固定列表,因此我们可以创建一个向量来匹配“ Campaign_name”列中的字符串。

   Date           Campaign
1 Jan-15 Summer|Peter|Up
2 Feb-15 David|Winter|Down
3 Mar-15 Up|Peter|Spring


这是我想要做的,我想创建3列作为名称,季节,位置。因此,这些列可以搜索广告系列列内的字符串,并从下面的列表中返回匹配的值。

Name <- c("Peter, David")
Season <- c("Summer","Spring","Autumn", "Winter")
Position <- c("Up","Down")


所以我想要的结果将是

Temp
Date Campaign Name Season Position
1 15-Jan Summer|Peter|Up Peter Summer Up
2 15-Feb David|Winter|Down David Winter Down
3 15-Mar Up|Peter|Spring Peter Spring Up

最佳答案

请执行下列操作:

Date = c("Jan-15","Feb-15","Mar-15")
Campaign = c("Summer|Peter|Up","David|Winter|Down","Up|Peter|Spring")
df = data.frame(Date,Campaign)

Name <- c("Peter", "David")
Season <- c("Summer","Spring","Autumn", "Winter")
Position <- c("Up","Down")

for(k in Name){
df$Name[grepl(pattern = k, x = df$Campaign)] <- k
}

for(k in Season){
df$Season[grepl(pattern = k, x = df$Campaign)] <- k
}

for(k in Position){
df$Position[grepl(pattern = k, x = df$Campaign)] <- k
}


这给出:

> df
Date Campaign Name Season Position
1 Jan-15 Summer|Peter|Up Peter Summer Up
2 Feb-15 David|Winter|Down David Winter Down
3 Mar-15 Up|Peter|Spring Peter Spring Up

关于r - 如何搜索包含在字符串列表中的一部分字符串,并在R中返回匹配的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34804076/

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