所以我有一个包含序列号的单列数据框。例如:
15161718191a
17272892020c
37464748494f
16263738393g
17738393303a
83849404040d
我想在每个串行代码之间添加一个“计数器行”标识符,所以它看起来像这样:
Code1
15161718191a
Code2
17272892020c
Code3
37464748494f
Code4
16263738393g
Code5
17738393303a
Code6
83849404040d
正如您所看到的,“代码”一词保持不变,但其后面的数字是迭代的(Code1,Code2等)。有没有办法以自动方式为包含数千个串行代码的数据集执行此操作?
谢谢!
答案 0 :(得分: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
答案 1 :(得分: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
答案 2 :(得分: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 )