我正在尝试根据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,...]表示的篮球队。
如果我理解正确,您想从字符串中提取颜色,对吗?使用纵梁包,您可以使用
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"
[df$new_column = unlist(strsplit(df$colname,'_'))[seq(2,nrow(df),2)]
会将颜色分成单独的列。
这将起作用。使用mtcars作为示例数据集