Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.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
如何删除数据帧中行名的前n个字符?R_R_Rowname - Fatal编程技术网

如何删除数据帧中行名的前n个字符?R

如何删除数据帧中行名的前n个字符?R,r,rowname,R,Rowname,我有一个数据框,看起来像这样: date_tmp efficiency smb rmrf hml rmw cma Returns 2010-11-04.Stock1 2010-11-04 0.4469618 0.87430339 0.7337814 0.00000000 0 0.60769928 1.245834 2010-11-04.Stock2 2010-11-04 0.6608003 0

我有一个数据框,看起来像这样:

                    date_tmp  efficiency        smb      rmrf      hml   rmw      cma    Returns
2010-11-04.Stock1 2010-11-04  0.4469618 0.87430339 0.7337814 0.00000000   0 0.60769928 1.245834
2010-11-04.Stock2 2010-11-04  0.6608003 0.65057967 2.2088113 0.00000000   0 0.10672836 1.659817
2010-11-04.Stock3 2010-11-04  0.3878181 0.88259984 0.2530008 0.04665325   0 1.38739047 1.388948
2010-11-04.Stock4 2010-11-04  0.4781154 0.93226537 0.0000000 0.16319179   0 1.43025290 1.331511
2010-11-04.Stock5 2010-11-04  0.4809276 0.56507215 1.9185010 0.00000000   0 0.09270075 1.441663
2010-11-04.Stock6 2010-11-04  0.4619094 0.06452728 1.8513120 0.00000000   0 0.40841138 1.251019
第一列显示行名称

我需要的是删除所有行上的日期部分,例如(“Stock1”,而不是“2010-11-04.Stock1”

我基本上需要这个函数的反面,它保留前n个字符,而不是删除它们

x <- "some text in a string"

substrRight <- function(x, n){
  substr(x, 1, n)
}

substrRight(x, 4)
[1] "some"

<代码> x如果日期部分是您想删除的,例如

,您可能需要考虑使用正则表达式。
foo = function(x){
    return(gsub(".+\\.","",x))
}

如果你这样做,foo(“2010-11-04.Stock1”)将返回你Richard所说的“Stock1”

rownames(data)。你编写的函数的相反部分是
substr(x,nchar(x)-n+1,nchar(x))
,因为你询问了
substr
substr(rownames(df1),nchar(rownames(df1))-5,nchar(rownames(df1)))
但我会使用@RichardScriven评论的
sub
,因为当字符数大于9时,字符数会变化。非常感谢!