[英]How to rename the specific pattern in the column name?
我想用列名中的特定模式重命名一個值。
例如,
ex_before<-data.frame(A1B..123.=c('a', 'b', 'c'),
BCD43..24.=c('d', 'e', 'f'),
Q2E4W..532.=c(1,4,2),
OI95J8..934.=c(9,3,9))
ex_before
A1B..123. BCD43..24. Q2E4W..532. OI95J8..934.
1 a d 1 9
2 b e 4 3
3 c f 2 9
ex_after<-data.frame('123'=c('a', 'b', 'c'),
'24'=c('d', 'e', 'f'),
'532'=c(1,4,2),
'934'=c(9,3,9))
names(ex_after)<-gsub(x=names(ex_after), pattern="X", replacement="")
ex_after
123 24 532 934
1 a d 1 9
2 b e 4 3
3 c f 2 9
我嘗試了下面這種愚蠢的方法,但我想一定有更有效的方法。
names(ex_before)<-gsub(x=names(ex_before), pattern="\\w+\\..", replacement="")
names(ex_before)<-gsub(x=names(ex_before), pattern="\\.", replacement="")
ex_before
123 24 532 934
1 a d 1 9
2 b e 4 3
3 c f 2 9
任何人都可以建議其他方法嗎?
這個怎么樣?
names(ex_before) <- sub('.*\\.(\\d+)\\.$', '\\1', names(ex_before))
ex_before
# 123 24 532 934
#1 a d 1 9
#2 b e 4 3
#3 c f 2 9
這基本上提取了句點之間的數字( "."
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.