Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 删除数据帧值的后缀_R_Dataframe - Fatal编程技术网

R 删除数据帧值的后缀

R 删除数据帧值的后缀,r,dataframe,R,Dataframe,我有一个这样做的数据帧: a b c -------------------------------- 1 2011 mal ID9 2 2012 yesterday ID10 3 2010 misch ID10 4 1995 ship ID9 5 2008 se ID9 6 1998 falling ID10 7 2011

我有一个这样做的数据帧:

 a       b         c
--------------------------------
 1     2011     mal ID9     
 2     2012     yesterday ID10 
 3     2010     misch ID10 
 4     1995     ship ID9 
 5     2008     se ID9 
 6     1998     falling ID10 
 7     2011     friend ID9 
 8     2011     use to be ID10 
       ...
我想要的是删除
ID9
ID10
后缀。在
ID9
ID10
之前的字符串部分具有任意长度,因此我不知道其先验性

对于一个可复制的示例,这是我的数据帧:

z <- data.frame(a = c(1,2,3,4,5,6,7,8),
                b = c(2011,2012,2010,1995,2008,1998,2011,2011),
                c = c("mal ID9", "yesterday ID10", "misch ID10", "mal ID10", "se ID9", "falling ID10", "friend ID9", "use to be ID10"))

z您可以尝试以下方法:

z %>% mutate(c = gsub("\\sID\\d+$", "", c))

  a    b         c
1 1 2011       mal
2 2 2012 yesterday
3 3 2010     misch
4 4 1995       mal
5 5 2008        se
6 6 1998   falling
7 7 2011    friend
8 8 2011 use to be
这应该行得通

    z$c=gsub(" ID.*","",z$c)

你需要一个正则表达式。您可以使用类似于:
gsub(“ID[0-9]{1,2}$”,“”,z$c)
    z$c=gsub(" ID.*","",z$c)