在 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
据我所知,似乎可以通过不止一种方式来做到这一点,但我还没有找到一种可行的方法!
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"
我相信还有其他方法可以做到这一点。探索并享受乐趣:)[=11=]
是的。在 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)
我曾尝试在网站上寻找解决方案,但重塑数据仍然让我感到困惑。我希望有人能帮忙! :) 基本上,我的数据如下所示:
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
据我所知,似乎可以通过不止一种方式来做到这一点,但我还没有找到一种可行的方法!
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"
我相信还有其他方法可以做到这一点。探索并享受乐趣:)[=11=]
是的。在 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)