2014-03-26 100 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

相關問題