1
我有一個數據框,看起來像下面的數據框,我將其稱爲數據框1.沒有固定模式的數量與「tank」列中的每個數字關聯的行(或關於該事件的其他列)。R:在組內重複一系列數字每組之間的次數
#code for making data frame 1
tank<-c(1,1,2,3,3,3,4,4)
size<-c(2.1,3.5,2.3,4.0,3.3,2.2,1.9,3.0)
mass<-c(6.5,5.5,5.9,7.2,4.9,8.0,9.1,6.3)
df1<-data.frame(cbind(tank,size,mass))
我需要重複的值在每個水箱內的「大小」和「質量」欄目中發現的序列。然而,每個坦克序列的重複次數會有所不同(再次沒有特定的模式)。我有一個包含重複每個罐的序列號的另一個數據幀(數據幀2),它看起來是這樣的:
#code for making data frame 2
tank<-c(1,2,3,4)
rpeat<-c(3,1,2,2)
df2<-data.frame(cbind(tank,rpeat))
最終,我的目標是有一個這樣的數據幀(見下文)。一個罐中的每一個系列的值被重複等於在數據幀2.
#code for making data frame 3
tank<-c(1,1,1,1,1,1,2,3,3,3,3,3,3,4,4,4,4)
size<-c(2.1,3.5,2.1,3.5,2.1,3.5,2.3,4.0,3.3,2.2,4.0,3.3,2.2,1.9,3.0,1.9,3.0)
mass<-c(6.5,5.5,6.5,5.5,6.5,5.5,5.9,7.2,4.9,8.0,7.2,4.9,8.0,9.1,6.3,9.1,6.3)
df3<-data.frame(cbind(tank,size,mass))
我已想出稍微粗的方式來做到這一點,當在尺寸和質量列每個數字是指定的次數只是重複指定的次數(見下文),而不是如何創建我需要的重複序列。
#code to make data frame 4
tank<-c(1,1,1,1,1,1,2,3,3,3,3,3,3,4,4,4,4)
size2<-c(2.1,2.1,2.1,3.5,3.5,3.5,2.3,4.0,4.0,3.3,3.3,2.2,2.2,1.9,1.9,3.0,3.0)
mass2<-c(6.5,6.5,6.5,5.5,5.5,5.5,5.9,7.2,7.2,4.9,4.9,8.0,8.0,9.1,9.1,6.3,6.3)
df4<-data.frame(cbind(tank,size,mass))
爲了製作上面的數據幀,我把下面的數據框,它結合了數據幀1和2,並應用下面的代碼。
#code to produce data frame 5
tank<-c(1,1,2,3,3,3,4,4)
size<-c(2.1,3.5,2.3,4.0,3.3,2.2,1.9,3.0)
mass<-c(6.5,5.5,5.9,7.2,4.9,8.0,9.1,6.3)
rpeat<-c(3,3,1,2,2,2,2,2)
df5<-data.frame(cbind(tank,size,mass,rpeat))
#code to produce data frame 4 from data frame 5
tank_col <- rep(df5$tank, times = df5$rpeat)
size_col <- rep(df5$size, times = df5$rpeat)
mass_col <- rep(df5$mass, times = df5$rpeat)
goal <-data.frame(cbind(tank_col,size_col,mass_col))
對不起,這是很長的,但我很難解釋我需要做什麼,沒有提供的例子。預先感謝您提供的任何幫助。
謝謝mnel。這照顧了我的問題。我沒有意識到data.table包。我一定會閱讀更多關於使用它。 – user2709041