【发布时间】:2020-12-27 02:48:54
【问题描述】:
以下数据集为宽格式,有“ql”、“st”、“xy”前缀“a”、“b”、“c”的重复测量;
df<-data.frame(id=c(1,2,3,4),
ex=c(1,0,0,1),
aql=c(5,4,NA,6),
bql=c(5,7,NA,9),
cql=c(5,7,NA,9),
bst=c(3,7,8,9),
cst=c(8,7,5,3),
axy=c(1,9,4,4),
cxy=c(5,3,1,4))
我正在寻找一种在前缀字母“a”、“b”和“c”之后插入点的方法,同时保持其他列(即 id、ex)不变。我一直在使用 gsub 函数解决这个问题,例如
names(df) <- gsub("", "\\.", names(df))
但得到了不希望的结果。预期的输出看起来像
id ex a.ql b.ql c.ql b.st c.st a.xy c.xy
1 1 1 5 5 5 3 8 1 5
2 2 0 4 7 7 7 7 9 3
3 3 0 NA NA NA 8 5 4 1
4 4 1 6 9 9 9 3 4 4
【问题讨论】:
-
试试
sub("(^[a-c])(.+)", "\\1.\\2", names(df))