我有一个数据框如下。我想把列名的一部分作为新名称,因为它太长而且对我来说没有必要。感谢您的帮助。
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
答案 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