2017-05-28 15 views
0

私はデータフレームのリストを持っています。各データフレームには、データが "\ t"で区切られた1つの列しかありません。列の名前は、データフレームごとに異なります。私は列を分割し、新しい列の名前を提供したいと思います。データフレームのリストの分割列

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 

私は、1つのデータフレームのためにそれを得たが、私はデータフレームIは、データフレームのリストにこれを適用することができますどのように

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

のリストに適用したいですか? この

+0

に関する私を導い – Sotos

+0

私は、{lapply(list.df、機能(I) 'のようなものを私の質問 – user821

+1

リストを反復するために' lapply'を使用して編集してデータの再現性の例を共有してくださいしてくださいd1 < - data.frame(text = i); cSplit(d1、 'text'、 '\ t')}) '(未テスト) – Sotos

答えて

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 
関連する問題