如何基于另一列中的部分字符串向R中的数据帧添加一列?

问题描述 投票:-1回答:1

我正在尝试根据R中另一列中的部分字符串匹配来创建具有返回值的新列。第一列是由颜色和位置(例如yellow_center,red_guard,orange_forward等)表示的篮球队。我要添加的列是基于颜色的团队名称列。在此示例中,我希望基于行中较早的团队/位置字符串返回值Yellow,Orange或Red。我将只使用4或5种颜色。

我已经弄乱了grep,grepl和transform函数,但没有得到预期的答案。

我试图这样做是为了得到第一个字母,但是似乎并没有创建该列。

transform(teamfile,team.name >

我已经尝试了grepl几种方法,但是没有保存它们。

我想看到的是一个新的列,根据player_position列值中的颜色,它的颜色为“黄色”,“红色”或“橙色”。

我正在尝试根据R中另一列中的部分字符串匹配来创建具有返回值的新列。第一列是由颜色和位置(例如yellow_center,...]表示的篮球队。

r string transform return-value grepl
1个回答
0
投票

如果我理解正确,您想从字符串中提取颜色,对吗?使用纵梁包,您可以使用

library(stringr)
teamfile$teamname <- str_extract(teamfile$player_position,  "^.*(?=\\_)") 
# this regex extraxts everything up to a "_"
# so it extracts "orange" based on "orange_guard", "orange_center" or "orange_whatever"

0
投票

[df$new_column = unlist(strsplit(df$colname,'_'))[seq(2,nrow(df),2)]会将颜色分成单独的列。


0
投票

这将起作用。使用mtcars作为示例数据集

© www.soinside.com 2019 - 2024. All rights reserved.