【发布时间】:2021-01-22 09:00:06
【问题描述】:
我在 R 中有一个命名数字向量,其中包含 2000 多个命名数字。我想将数字大于 1 的每个元素拆分为数字表示的元素数量,最后只有数字 1。但重要的是名称也更改为在我的输出中指出。
输入:
obj<- c(3,1,1,1,6,1,1,1,1,1,1,1,1,3)
names(obj)<- c("V4","V10","V12","V15","V16","V20","V21","V22","V23","V36","V39","V40","V41","V42")
>obj
V4 V10 V12 V15 V16 V20 V21 V22 V23 V36 V39 V40 V41 V42
3 1 1 1 6 1 1 1 1 1 1 1 1 3
输出:
obj_out<- c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3)
names(obj_out)<- c("V4_1","V4_2","V4_3","V10","V12","V15","V16_1","V16_2","V16_3","V16_4","V16_5","V16_6","V20","V21","V22","V23","V36","V39","V40","V41","V42_1","V42_2","V42_3")
> obj_out
V4_1 V4_2 V4_3 V10 V12 V15 V16_1 V16_2 V16_3 V16_4 V16_5 V16_6 V20 V21
1 1 1 1 1 1 1 1 1 1 1 1 1 1
V22 V23 V36 V39 V40 V41 V42_1 V42_2 V42_3
1 1 1 1 1 1 1 1 1
我已经有一个代码,但它对序列进行了全新的命名,从 V1 开始:
obj_out<- paste0("V",rep(seq_along(obj_out), obj_out), "_", sequence(obj_out))
【问题讨论】:
标签: r