排除列中所有行的前缀(R软件)

时间:2014-02-17 17:55:47

标签: r prefix

我想从R数据帧中的特定列中排除所有行的公共前缀。我的意见:

   chr

   chr1
   chr2
   chr3
   chr4

我的预期输出:

  chr
   1
   2
   3
   4

2 个答案:

答案 0 :(得分:2)

使用gsub

非常容易
x <- c("chr1", "chr2", "chr3", "chr4")
gsub("chr", "", x)
# [1] "1" "2" "3" "4"

您也可以考虑substring功能。

substring(x, 4, nchar(x))
# [1] "1" "2" "3" "4"

答案 1 :(得分:2)

如果这些是因素,那么您需要更改“级别”名称,而不是处理项目值:

chrdf <- read.table(text="chr1
    chr2
    chr3
    chr4", col.names="chr")
chrdf
#--------
   chr
1 chr1
2 chr2
3 chr3
4 chr4

levels(chrdf$chr) <- gsub("chr", "", levels(chrdf$chr) )
chrdf
  chr
1   1
2   2
3   3
4   4

'factor'变量类型是许多人的难关。我可以证明这种困难持续了很长一段时间。我没有问过很多问题,但是我提出过的一个问题得到了很多其他同样困惑的人(也许更聪明的人只会感到困惑和同情)SO读者。