2017-12-01 6 views
1

私は文字リストデータのリストを持っています。データ及び例のタイプは次の通りである、リストの各要素に対してrのリスト内の要素を結合する

typeof(data) 
[1] "list" 


print(data[1:3]) 

$... 
[1] ",75=20140102,268=18,"      
[2] "0,83=337407," 
[3] "0,83=337408," 
[4] "0,83=3374779,"    


$... 
[1] ",75=20140122,268=336,"       
[2] "3,273=143000000,1020=50," 
[3] "1,270=422,271=1,273=143000000," 
[4] "0,83=337427,107=ZCH4," 
[5] "1020=58," 

$... 
[1] ",52=20140102143000085,75=20140102,268=17,"      
[2] "0,83=33744562,107=ZCH4," 

、iはデータを結合する[I]] [1]及びその要素の残りの部分。私はループでそれをやっています、それは動作しますが、非常に遅いです。 はここに私のコードで、 私の現在のコードは次のとおりです。データはかなり大きい

for (j in 1:length(data)){ 
for (k in 2:length(data[[j]])){ 
table[j+k,1]<- paste0(data[[j]][1], data[[j]][k]) #record every combination 
    } } 

ので、ループは非常に遅い実行されます。

望ましい結果:誰かがプログラミングをスピードアップすることができた場合

[1] ",75=20140102,268=18, 0,83=337407," "      
[2] ",75=20140102,268=18, 0,83=337408," 
[3] ",75=20140102,268=18, 0,83=3374779,"    
[4] ",75=20140122,268=336, 3,273=143000000,1020=50,"       
[5] ",75=20140122,268=336, 1,270=422,271=1,273=143000000," 
[6] ",75=20140122,268=336, 0,83=337427,107=ZCH4," 
[7] ",75=20140122,268=336, 1020=58," 
[8] ",52=20140102143000085,75=20140102,268=17, 0,83=33744562,107=ZCH4,"      

はどうもありがとうございます。

+1

あなたべき「dput(データ) 'と質問して貼り付けます。 – Suren

答えて

3
lapply(dat, function(x) paste0(x[1], x[2:length(x)])) 

がこれをより迅速に行います。

例:

test <- list(a = list("test", "again", "meep"), b = list("and", "again", "doot")) 

> test 
$a 
$a[[1]] 
[1] "test" 

$a[[2]] 
[1] "again" 

$a[[3]] 
[1] "meep" 


$b 
$b[[1]] 
[1] "and" 

$b[[2]] 
[1] "again" 

$b[[3]] 
[1] "doot" 

> lapply(test, function(x) paste0(x[1], x[2:length(x)])) 
$a 
[1] "testagain" "testmeep" 

$b 
[1] "andagain" "anddoot" 
関連する問題