2017-05-01 12 views
0

私はcsvに変換されたExcelシートを持っています。それは質問と呼ばれるヘッダーを持つ5行の文章を持っています。 data.frameを配列に変換するにはどうすればよいのですか?配列にlapplyでアクセスできるようにします。R - Excel CSV文のリスト - 配列へ

現在、私はベクトルを読み込んで作成することはできますが、それはすべての要素を返す配列としてアクセスできません。

これはどのように配列になりますか?

> loremData <- read.csv("lorem.csv") 
> head(loremData) 
               Questions 
1 Lorem ipsum dolor sit amet, consectetur affectum elit. 
2    Itaque contra est, ac dicitis consectetur; 
3    Beatus sibi videtur esse moriens igitur 
4     naturam affectum esse possit Beatus 
5   moriens consectetur. Quo igitur, inquit, modo? 
> mydata <- c(loremData) 
> head(mydata) 
$Questions 
[1] Lorem ipsum dolor sit amet, consectetur affectum elit. 
[2] Itaque contra est, ac dicitis consectetur;    
[3] Beatus sibi videtur esse moriens igitur    
[4] naturam affectum esse possit Beatus     
[5] moriens consectetur. Quo igitur, inquit, modo?   
5 Levels: Beatus sibi videtur esse moriens igitur ... 

> mydata[1] 
$Questions 
[1] Lorem ipsum dolor sit amet, consectetur affectum elit. 
[2] Itaque contra est, ac dicitis consectetur;    
[3] Beatus sibi videtur esse moriens igitur    
[4] naturam affectum esse possit Beatus     
[5] moriens consectetur. Quo igitur, inquit, modo?   
5 Levels: Beatus sibi videtur esse moriens igitur ... 
+0

私はあなたがここで何を意味するのか分かりません。個々の質問にアクセスしたい場合は、 'loremData $ Questions [1]'のような元のデータフレームを使って簡単に行うことができます。または、個々の単語にアクセスしたいですか? – Marius

+0

私は個々の単語にアクセスしたいです。最終的に単語出現回数を作成する – sayth

答えて

1

あなたは、あなたがloremDataのデータフレームを使用して読み取ることができない場合、それは

loremData[1,] 

のように行番号を使用して賢明な行

mydata <- c(loremData) 

を使用する理由はありますかこのようにlapplyでアクセスできます。

lapply(seq_along(loremData), function(x) print(loremData[1,][x])) 
言葉として分割のため

(コンマなどのような特殊な文字を取り除くために、よりここで実行する必要があります)

a<-lapply(seq_along(loremData), function(x) strsplit(loremData[x],split='\\s+')) 

あなたは、個々の単語を置くため

table(as.data.frame(a)) 
+0

>単語< - lapply(seq_along(loremData)、function(x)strsplit(loremData [x]、split = '\\ s +')) strsplit(loremData [x]、 split = "\\ s +"):文字以外の引数 strsplit(loremData [x]、split = "\\ s +") – sayth

1

により周波数カウントを取得することができます行列の中にあなたがstringrパッケージからstr_splitのような機能を使用することができます。

stringr::str_split(loremData$Questions, pattern = "\\s+", simplify = TRUE) 

私はそれを保証することはできませんこれは大規模なデータセットでは効率的です。代わりにsimplify = FALSEが必要な場合があります。これにより、最長の文章と同じ幅の行列が得られません。

関連する問題