2017-05-28 7 views
0

Ich habe eine Liste von Datenrahmen. Jeder Datenrahmen hat nur eine Spalte mit Daten getrennt "\ t". Der Name der Spalte ist für verschiedene Datenrahmen unterschiedlich. Ich möchte die Spalte aufteilen und Namen für die neuen Spalten angeben.Spalte Spalte der Liste der Datenframes

list.df <- c(df1,df2,df3....df1000) 
df1 
$`000004.ame` 
[1] 0.0\t0.00\t12.1\t1.0\t14.01\t1  2.0\t0.00\t13.9\t-0.2\t14.02\t1  
[3] 4.0\t-0.00\t13.2\t0.2\t14.01\t1  6.0\t0.00\t12.8\t0.0\t14.02\t1  
[5] 8.0\t0.00\t13.7\t0.0\t14.02\t1 

other data frames are similar with different column names 

Ich habe es für einen Datenrahmen, aber ich möchte Liste von Daten anzuwenden Rahmen

colnames(X) <- "text" 
library(splitstackshape) 
X <- cSplit(as.data.frame(X),"text","\t") 
colnames(X) <- c("T","I") 

Wie kann ich dies auf eine Liste von Datenrahmen gelten? Bitte führen Sie mich zu diesem

+0

Bitte teilen reproduzierbaren Beispiel Ihrer Daten – Sotos

+0

i meine Frage – user821

+1

Verwendung bearbeitet 'lapply' über die Liste zu durchlaufen, so etwas wie' lapply (list.df, Funktion (i) { d1 <- data.frame (text = i); cSplit (d1, 'text', '\ t')}) '(ungetestet) – Sotos

Antwort

0
library(stringr) 

# Creating similiar dfs 

vec1 <- c("0.0\t0.00\t12.1\t1.0\t14.01\t1","0.0\t0.00\t12.1\t1.0\t14.01\t1" 
,"0.0\t0.00\t12.1\t1.0\t14.01\t1","0.0\t0.00\t12.1\t1.0\t14.01\t1") 
df1 <- as.data.frame(vec1, stringsAsFactors = FALSE) 

df2 <- df1 

list.df <- c(df1,df2) 

# Looping over this list with lapply 
# Using stringrs str_split instead of splitstackshape 


list.splitted.dfs <- lapply(list.df, function(x) unlist(str_split(x[1], 
"\t"))) 

# Output from above is a list, need to bind it together 
new <- as.data.frame(do.call(rbind, list.splitted.dfs)) 
> newdf 
V1 V2 V3 V4 V5 V6 
1 0.0 0.00 12.1 1.0 14.01 1 
2 0.0 0.00 12.1 1.0 14.01 1 
Verwandte Themen