如何在数据框中提取部分名称作为新列名称

时间:2014-03-26 19:00:37

标签: r

我有一个数据框如下。我想把列名的一部分作为新名称,因为它太长而且对我来说没有必要。感谢您的帮助。

df = read.table(text="PV_556933.C25E8ACXX.1.250197415   PD_556996.C25E8ACXX.1.250197421 PT_556997.MERGE PC_559379.D25PAACXX.2.250194617
G   G   G   G
A   A   A   A
A   A   A   A
G   G   G   T
C   T   C   T
A   A   A   A", header=T, stringsAsFactors=F)

I expect the data frame as:
PV_556933   PD_556996   PT_556997   PC_559379
G   G   G   G
A   A   A   A
A   A   A   A
G   G   G   T
C   T   C   T
A   A   A   A

1 个答案:

答案 0 :(得分:1)

这是怎么回事?我将字符串(strsplit)拆分为一个点(您需要使用\\进行转义)并仅使用lapply取出第一个元素。 unlist可以将列表强制转换为矢量。

> names(df) <- unlist(lapply(strsplit(names(df), "\\."), "[[", 1))
> df
  PV_556933 PD_556996 PT_556997 PC_559379
1         G         G         G         G
2         A         A         A         A
3         A         A         A         A
4         G         G         G         T
5         C         T         C         T
6         A         A         A         A