3
我想重塑一个数据框,并且我正在为重塑和堆栈函数的文档努力工作。我的数据帧是这样的:在R中重塑数据
x<-rnorm(n=20, mean=0, sd=1)
y<-rnorm(n=20, mean=10, sd=1)
fact<-rep(1:5, times=4)
df<-data.frame(x,y,fact)
最后,我想要一个2列数据帧(40x2)具有x和y“叠加”和一列与对应的X &ý的因子
我想重塑一个数据框,并且我正在为重塑和堆栈函数的文档努力工作。我的数据帧是这样的:在R中重塑数据
x<-rnorm(n=20, mean=0, sd=1)
y<-rnorm(n=20, mean=10, sd=1)
fact<-rep(1:5, times=4)
df<-data.frame(x,y,fact)
最后,我想要一个2列数据帧(40x2)具有x和y“叠加”和一列与对应的X &ý的因子
我一列我不知道,如果你想保留关于其中的值从(即X或Y列附带的信息。如果你不这样做,那么这是很容易:
df2 <- data.frame(xy = c(df$x,df$y), fact=c(df$fact, df$fact))
如果你想保持信息fact
然后其中之一:
### Method 1
df2 <- data.frame(xy = c(df$x,df$y),
fact=c(paste("x", df$fact, sep="."), paste("y", df$fact, sep="."))
)
str(df2)
'data.frame': 40 obs. of 2 variables:
$ xy : num 1.58043 -0.00399 0.84784 -0.10012 -0.27963 ...
$ fact: Factor w/ 10 levels "x.1","x.2","x.3",..: 1 2 3 4 5 1 2 3 4 5 ...
### Method 2
df2 <- stack(df[, 1:2])
df2$fact=df$fact
str(df2)
'data.frame': 40 obs. of 3 variables:
$ values: num 1.58043 -0.00399 0.84784 -0.10012 -0.27963 ...
$ ind : Factor w/ 2 levels "x","y": 1 1 1 1 1 1 1 1 1 1 ...
$ fact : int 1 2 3 4 5 1 2 3 4 5 ...
一个衬里与melt
reshape2::melt(df, id = 'fact', variable.name = 'xy')