R中数据帧的重新排列
所以我有一个R输出,看起来像这样R中数据帧的重新排列,r,transform,R,Transform,所以我有一个R输出,看起来像这样 Time 50 100 150 200 250 300 350 Carla 1.2 1.8 2.2 2.3 3.0 2.5 1.8 Mace 1.5 1.1 1.9 2.0 3.6 3.0 2.5 Lea 1.7 1.6 2.3 2.7 2.6 2.2 2.6 Karen 1.3 1.7 1.9 2.2 3.2 1.5 1.9 Time Score Name 50 1.
Time 50 100 150 200 250 300 350
Carla 1.2 1.8 2.2 2.3 3.0 2.5 1.8
Mace 1.5 1.1 1.9 2.0 3.6 3.0 2.5
Lea 1.7 1.6 2.3 2.7 2.6 2.2 2.6
Karen 1.3 1.7 1.9 2.2 3.2 1.5 1.9
Time Score Name
50 1.2 Carla
50 1.5 Mace
50 1.7 Lea
50 1.3 Karen
100 1.8 Carla
100 1.5 Mace
100 1.7 Lea
100 1.3 Karen
我希望它看起来像这样
Time 50 100 150 200 250 300 350
Carla 1.2 1.8 2.2 2.3 3.0 2.5 1.8
Mace 1.5 1.1 1.9 2.0 3.6 3.0 2.5
Lea 1.7 1.6 2.3 2.7 2.6 2.2 2.6
Karen 1.3 1.7 1.9 2.2 3.2 1.5 1.9
Time Score Name
50 1.2 Carla
50 1.5 Mace
50 1.7 Lea
50 1.3 Karen
100 1.8 Carla
100 1.5 Mace
100 1.7 Lea
100 1.3 Karen
如何将其转换为此?
谢谢我从这里直接复制了您的数据集,并对其进行了一些处理:
library(reshape2)
data <- read.fwf("data.txt",widths=c(7,5,7,5,4,4,4,3))
data <- data.frame(lapply(data,function(x){gsub(" ","",x)}),stringsAsFactors=FALSE)
data <- data.frame(lapply(data,as.character),stringsAsFactors=FALSE)
names(data) <- data[1,]
data <- data[-1,]
data <- melt(data,id.vars=c("Time"))
names(data) <- c("Name","Time","Score")
data <- data[,c("Time","Score","Name")]
library(重塑2)
数据两种方法,均不需要外部包装:
# get the data, the number labelled columns get automatically renamed
# to say 'X50' instead of '50'
test <- read.table(text="Time 50 100 150 200 250 300 350
Carla 1.2 1.8 2.2 2.3 3.0 2.5 1.8
Mace 1.5 1.1 1.9 2.0 3.6 3.0 2.5
Lea 1.7 1.6 2.3 2.7 2.6 2.2 2.6
Karen 1.3 1.7 1.9 2.2 3.2 1.5 1.9",header=TRUE)
方法2:基础R重塑
result <- reshape(test, idvar="Time", varying=-1, direction="long", sep="")
names(result) <- c("Name","Time","Score")
> head(result)
Name Time Score
Carla.50 Carla 50 1.2
Mace.50 Mace 50 1.5
Lea.50 Lea 50 1.7
Karen.50 Karen 50 1.3
Carla.100 Carla 100 1.8
Mace.100 Mace 100 1.1
结果是表格
矩阵
或数据帧
?你能dput(objectname)
让我知道你在处理什么吗?