我有以下的數據幀:ř結合數據幀列與正則表達式
dat <- data.frame(
c = c(1 , 2) , a1 = c(1 , 2) , a2 = c(3 , 4) , b1 = c(5 , 6) , b2 = c(7 , 8)
)
c a1 a2 b1 b2
1 1 1 3 5 7
2 2 2 4 6 8
即我想合併基於共享前綴列成爲該數據幀:
dat2 <- data.frame(
c = c(1 , 2 , 1 , 2) , a = c(1 , 2 , 3 , 4) , b = c(5 , 6 , 7 , 8)
)
c a b
1 1 1 5
2 2 2 6
3 1 3 7
4 2 4 8
唯一我能想到的方式是嘗試使用melt()
來做到這一點。這是我的嘗試:
melt(dat , measure.vars = c(grep("^a" , colnames(dat)) , grep("^b" , colnames(dat))))
variable value
1 1 a1 1
2 2 a1 2
3 1 a2 3
4 2 a2 4
5 1 b1 5
6 2 b1 6
7 1 b2 7
8 2 b2 8
>
不用說,這是不正確。
我覺得'融化'是一個很好的開始。現在您只需閱讀「dcast」的幫助頁面並完成該過程。 –
有兩件事:使用dcast(data = dat,formula = value〜variable) '會讓我回到我所在的位置(理論上,我認爲,雖然它拋出一個錯誤,說它找不到「value」某些原因,但我似乎無法弄清楚如何去除變量的數字 – mnosefish