2016-03-21 11 views
0

で数値データへの非数値データを変換:私はこのフォーマットでcsvファイル持っているR

android ; login.html , connect.json , page1.json 

windows ; login.html , connect.json , page1.json , page2.html , page5.html 

windows ; login.html , connect.json , page4.json 

これらの変数を持つPCA多変量解析を行うには、これらの変数は、このような数値でなければなりません:

1 ; 3 

0 ; 5 

0 ; 3 

0または1は、ウィンドウまたはアンドロイドにページ数が続くかどうかを示します。 私はこれらの非数値データを変更する方法を探しています 何かお考えですか? ベスト

+1

'として区切り文字で読む。、'最初のための第二の列と '==' '上count.fields'を使用します ""コラムです.... – A5C1D2H2I1M1N2O1R2T1

答えて

1

てみstrsplitlengths

DF <- read.table(text = Lines, sep = ";", as.is = TRUE, strip.white = TRUE) 
transform(DF, V1 = as.numeric(V1 == "android"), V2 = lengths(strsplit(V2, ","))) 

寄付:

V1 V2 
1 1 3 
2 0 5 
3 0 3 

注:我々は、この入力を使用した:

Lines <- "android ; login.html , connect.json , page1.json 
windows ; login.html , connect.json , page1.json , page2.html , page5.html 
windows ; login.html , connect.json , page4.json" 
2

は、ここに1つのアプローチです:

data.frame(V1 = as.numeric(mydf$V1 == "android"), 
      V2 = count.fields(textConnection(mydf$V2), sep = ",")) 
# V1 V2 
# 1 1 3 
# 2 0 5 
# 3 0 3 

サンプルデータ:

mydf <- read.table(
    header = FALSE, sep = ";", stringsAsFactors = FALSE, strip.white = TRUE, 
    text = '"android" ; "login.html , connect.json , page1.json" 
"windows" ; "login.html , connect.json , page1.json , page2.html , page5.html" 
"windows" ; "login.html , connect.json , page4.json"') 
+0

ありがとうございます@ハンドカートとモヘアそれは動作します。乾杯 – Fish

関連する問題