簡體   English   中英

在R中重塑數據幀

[英]Reshaping a data frame in R

我曾嘗試在網站上尋找解決方案,但是重塑數據仍然使我感到困惑。 希望有人能幫忙! :)基本上,我的數據如下所示:

Item Condition1 Condition2 Condition3
A    1          2          3
B    1          2          3
C    1          2          3
D    1          2          3

我希望它看起來像這樣

Item Condition
A    1
A    2
A    3
B    1
B    2
B    3
C    1
C    2
C    3
D    1
D    2
D    3

據我了解,似乎可以通過多種方式實現此目的,但我尚未發現一種可行的方式!

是。 在R中有幾種方法可以做到這一點。

獲得您在問題中指定的順序的選項

library(data.table)
as.data.table(mydf)[, list(Condition = unlist(.SD)), by = Item]

library(splitstackshape)
merged.stack(mydf, var.stubs = "Condition", 
             sep = "var.stubs")[, .time_1 := NULL][]

data.frame(Item = rep(mydf[[1]], 
                      each = ncol(mydf[-1])), 
           Condition = c(t(mydf[-1])))

需要采取進一步措施才能刪除列或重新排序行的選項

reshape(mydf, direction = "long", idvar = "Item",
        varying = 2:ncol(mydf), sep = "")

cbind(mydf[1], stack(mydf[-1]))

library(tidyr)
gather(mydf, var, val, Condition1:Condition3)
require(reshape2)

df<-data.frame(Item=LETTERS[1:4],
               Condition1=1,
               Condition2=2,
               Condition3=3)
reshapedf<-melt(df,id=1)[-2]
reshapedf<-reshapedf[with(reshapedf,order(Item)),]
colnames(reshapedf)[2]<-"Condition"

我相信還有其他方法可以做到這一點。 探索並玩得開心:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM