r-如何从列值中删除特定字符串

r-如何从列值中删除特定字符串,r,R,这是我的数据框,我想从列值中删除扮演角色的“全名”“击球风格”“保龄球风格”文本。我使用了strsplit,得到了“不适用于原子向量”的错误。是否有其他解决方案?作为示例,请参见以下流程: # example data x = c("Full Name A B", "Full Name F B") y = c("Playing role G G", "Playing role G M") dt = data.frame(x,y) dt # x y # 1 Full

这是我的数据框,我想从列值中删除扮演角色的“全名”“击球风格”“保龄球风格”文本。我使用了strsplit,得到了“不适用于原子向量”的错误。是否有其他解决方案?

作为示例,请参见以下流程:

# example data
x = c("Full Name A B", "Full Name F B")
y = c("Playing role G G", "Playing role G M")
dt = data.frame(x,y)

dt

#   x             y
# 1 Full Name A B Playing role G G
# 2 Full Name F B Playing role G M

library(dplyr)

dt %>% mutate_all(~gsub("Full Name |Playing role |Batting style |Bowling style ", "", .))

#   x   y
# 1 A B G G
# 2 F B G M

尝试使用
gsub()
函数将这些值替换为空白。对于第一列,您需要类似于
x=“全名A B”;gsub(“全名”,“x”)
,但将其应用于完整列。似乎每一列都有自己的字符串要替换为空白,这对您来说很容易。哦,是的,但是如果我有更多的行,那么如何为每一列值指定?行是可以的,因为
gsub
是矢量化的。每个专栏都有自己的理念,你必须具体说明。以下面的答案为例。我已经用
sub
和regex
mutate\u all(~sub(“\\w+\\s+\\w+”,“,”)测试了您的代码。
。它可能被视为更一般,如果正好有两个词要删除,它就会起作用。@Aishaatique您是指列吗?包含100行的1列仍有1个模式要删除。有一行的100列可能要删除多达100个模式,对吗?