2017-10-23 19 views
0

だから、私が持っているもの次のリスト関数を使用してすべてのリストをRにリストする方法は?私はlapply、適用使用して専門家などないです

my_list 
[[1]] 
[1] "40.394081 -3.7083041" 

[[2]] 
[1] "40.3960251 -3.7116921" 

[[3]] 
[1] "40.3938449 -3.7071731" 

[[4]] 
[1] "40.3935099 -3.7121505" 

であると私はmy_listの各入り口に機能as.numericを使用します。つまり、リストの各入口に数字に変換しますが、リストの構造はそのままです。

ありがとうございました。

+0

を作成するためにread.tableを使用することになり、このリストはgoogleway 'を通じてGoogleのAPIへのクエリの結果であります'? – SymbolixAU

答えて

6

あなたはこのためlapply使用することができます:ここで

lapply(my_list, function(x) as.numeric(strsplit(x, ' ')[[1]])) 

を私はas.numericを使用して数値にキャストする前に、文字列を分割するstrsplitを使用しています。 lapplyはこれをリストの各要素に適用し、結果を返します。

+0

申し訳ありませんが、NAを返します。私はそれがリストの各入り口がベクトルではないからだと思う。 –

+0

申し訳ありませんが、それは単一の文字列であるという事実を発見していませんでした。私の答えを広げた。 –

+0

これは問題ありませんが、最後にカッコが必要です。それを修正して、私は良い答えを入れます –

5

私たちは、これはlistかないとして格納する必要があるかどうかは明らかではありませんscan

my_list2 <- lapply(my_list, function(x) scan(text=x, what = numeric(), quiet = TRUE)) 
str(my_list2) 
#List of 4 
# $ : num [1:2] 40.39 -3.71 
# $ : num [1:2] 40.4 -3.71 
# $ : num [1:2] 40.39 -3.71 
# $ : num [1:2] 40.39 -3.71 

を使用することができます。それはdata.frameとして保存することができれば、より良いオプションはunlistなると2つの列data.frameあなたの他の質問で行く

read.table(text=unlist(my_list), header = FALSE) 
+0

Scanはおそらく私のソリューションよりも 'strsplit'を使ってより強固に動作します。 –

+0

@ PaulHiemstra私は 'strsplit'は速くなければならないと思います – akrun

関連する問題