2014-03-26 134 views
0

我有如下的数据框。我想将列名的一部分作为新名称,因为它太长而且对我没有必要。感谢您的帮助。如何在数据框中提取部分名称作为新列名称

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

这个怎么样?我将字符串(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 
+0

太棒了!这工作。谢谢。 – user3354212

相关问题