展开向量并计算实例

时间:2014-03-22 17:21:48

标签: r

我有一个data.frame

orig.DF<-data.frame(V1=c("A", "B", "C"), V2=c(3,2,4))

我必须扩展它,以便采用以下形式

A 1
A 2
A 3
B 1
B 2
C 1
C 2
C 3
C 4

我尝试了taaplyave,但我无法将其计入1:x并相应地重复V1

2 个答案:

答案 0 :(得分:9)

df <- data.frame(V1 = c("A", "B", "C"), V2 = c(3, 2, 4))
data.frame(x = rep(df$V1, df$V2), y = sequence(df$V2))
  x y
1 A 1
2 A 2
3 A 3
4 B 1
5 B 2
6 C 1
7 C 2
8 C 3
9 C 4

答案 1 :(得分:1)

这是一种方法:

do.call(
   rbind, 
   apply(orig.DF, 1, function(row) expand.grid(row["V1"], 1:row["V2"]))
)