Neuformatierung Ich habe ein data.frame
dieses Format:ein R data.frame
set.seed(1)
pl.mat <-matrix(rnorm(500*1000),nrow=500,ncol=1000)
colnames(pl.mat) <- gsub("\\s+","",apply(expand.grid(paste("pl",1:10,sep=""),1:100),1,function(x) paste(unlist(x),collapse=".")),perl=T)
df <- cbind(data.frame(id=1:500,group.id=rep(1:25,20)),pl.mat)
> df[1:5,1:5]
id group.id pl1.1 pl2.1 pl3.1
1 1 1 -0.6264538 0.07730312 1.13496509
2 2 2 0.1836433 -0.29686864 1.11193185
3 3 3 -0.8356286 -1.18324224 -0.87077763
4 4 4 1.5952808 0.01129269 0.21073159
5 5 5 0.3295078 0.99160104 0.06939565
df$id
von df$group.id
gruppiert sind. Dann hat jede Spalte eine experimentelle Platten-ID (pl1
- pl10
), und die auf das Periodentrennzeichen folgende Ganzzahl ist eine Wannen-ID (1-100). Daher hat jede Platte 100 Spalten.
Ich mag eine neue data.frame
, die diese Säulen bauen: df$id
, df$group.id
, gut-ID und die alle Platten.
Bedeutung dieses Format:
id group.id well.id pl1 pl2 pl3
1 1 1 -0.6264538 0.07730312 1.13496509
1 1 2 ... ... ...
.
.
.
1 2 1 ... ... ...
.
.
.
500 25 . 100 ... ... ...
Jeder gute prägnant Code für das?
Für meine realen Daten erhalte ich: Fehler: C-Stack-Nutzung 135.438.240 ist zu nahe an der Grenze. Liegt das an einer Rekursion, die eine dieser Funktionen anwendet? Wenn ja, gibt es eine nicht-rekursive Alternative? – dan
Vermute, dass der Datensatz zu groß ist, um diesen Fehler zu erzeugen. Es gibt einige Diskussionen über [Fehler: Die C-Stack-Nutzung ist zu nah am Limit] (https://stackoverflow.com/questions/14719349/error-c-stack-usage-is-too-close-to-the-limit). Sehen Sie, ob Sie Ihre Daten zuerst in kleinere Abschnitte aufteilen können. Außerdem könntest du 'reshape2 :: schmelzen' und 'dcast' versuchen anstatt zu sammeln und zu verbreiten. –