0

所以我有一个包含序列号的单列数据框。前任:

15161718191a
17272892020c
37464748494f
16263738393g
17738393303a
83849404040d

我想在每个序列号之间添加一个“计数器行”标识符,使其看起来像这样:

Code1
15161718191a
Code2
17272892020c
Code3
37464748494f
Code4
16263738393g
Code5
17738393303a
Code6
83849404040d

如您所见,“代码”一词保持不变,但它后面的数字是迭代的(代码 1、代码 2 等)。对于包含数千个序列码的数据集,有没有办法以自动化的方式执行此操作?

谢谢!

4

3 回答 3

1

这是一种有点复杂的方法:

# Create some data
df<-data.frame(col=sample(LETTERS,100,replace=TRUE))
# Convert to a matrix, then convert to a vector.
df2<-data.frame(col=c(t(data.frame(paste0('Code',seq_along(df$col)),df$col))))
#     col
# 1 Code1
# 2     P
# 3 Code2
# 4     H
# 5 Code3
# 6     P
于 2013-11-11T21:17:15.253 回答
0

另一种方式,只是为了好玩:

d <- read.table(text='15161718191a
17272892020c
37464748494f
16263738393g
17738393303a
83849404040d', stringsAsFactors=FALSE)
data.frame(mycol=as.vector(rbind(paste0('Code', 1:nrow(d)), d[,1])))
#           mycol
# 1         Code1
# 2  15161718191a
# 3         Code2
# 4  17272892020c
# 5         Code3
# 6  37464748494f
# 7         Code4
# 8  16263738393g
# 9         Code5
# 10 17738393303a
# 11        Code6
# 12 83849404040d
于 2013-11-11T21:42:09.893 回答
0

我能想到的最直接的方法。创建一个新的数据框。

df = data.frame( col=c("15161718191a",
                 "17272892020c",
                 "37464748494f",
                 "16263738393g",
                 "17738393303a",
                 "83849404040d"),
                 stringsAsFactors=FALSE)

n = nrow(df)
df2 = data.frame(col=rep(NA,2*n))
df2[1:n*2-1,] = df
df2[1:n*2,] = paste0( "Code", 1:n )
于 2013-11-11T21:54:52.157 回答