2017-11-13 3 views
0

私の最後の列( "詳細")には、空白またはタブの情報があります。どのようにしてRのすべての詳細を単一の列として読み込むことができますか?Rの1つの列にテキストをスペースで結合する方法は?

入力

date month year type expenditure details 
10/31/2017 Oct 2017 food 10.89 Point Of Sale Withdrawal 17203473997 TRESIDDER U2   STANFORD  CAUS 
10/31/2017 Oct 2017 uber 4.80 Point Of Sale Withdrawal 44519795098 UBER TRIP F73MU  HELP.UBER.COMCAUS 
10/31/2017 Oct 2017 instacart 99.00 Point Of Sale Withdrawal 44534891998 INSTACART SUBSCRIPTION HTTPSINSTACARCAUS 
10/31/2017 Oct 2017 food 8.45 Point Of Sale Withdrawal 22607113998 CLARK CENTER-BIO-X CAF STANFORD  CAUS 
10/31/2017 Oct 2017 food 4.00 Point Of Sale Withdrawal 33426639883 COUPA CAFE Y2E2  STANFORD  CAUS 
10/31/2017 Oct 2017 uber 4.52 Point Of Sale Withdrawal 42029000200217 UBER TRIP QZ7W5 HELP.UB800-5928996 CAUS 
10/30/2017 Oct 2017 food 5.85 Point Of Sale Withdrawal 44519950998 UBER TRIP HOOMP  HELP.UBER.COMCAUS 
10/30/2017 Oct 2017 uber 23.20 Point Of Sale Withdrawal 33428390882 COUPA CAFE LYTTON  PALO ALTO CAUS 
10/30/2017 Oct 2017 food 7.52 Point Of Sale Withdrawal 34530890882 PANDA EXPRESS #2035 STANFORD  CAUS 
+0

あなたが正確な何の出力をしたいですか? 'details'はすでに単一の列です。 –

+1

@TimBiegeleisen - OPがこの情報を含むテキストファイルから読み込んでいるとします。私が知っている大きな前提 - OPが明らかにできるか? – thelatemail

+0

はいこれは、詳細が単一の列ではないテキストファイルです。 Rで読み込もうとすると、ファイルに列名よりも多くの列があるという次のエラーが発生します。 @thelatemail – user1883491

答えて

1

それは、Excelを使用すると、Excelにファイルを読み取るためにRパッケージのいずれかを使用することができるファイルである場合。あなたのサンプルデータを使って、openxlsxで開きます。これはjavaを必要とせず、あなたが望むように詳細の列を読みます。 コードは次のようになります。

read.xlsx("file", detectDates = T) 
1

私はこの上の専門家ではないんだけど、私は働く方法を見つけました。これは、単一の文字列としてファイルからすべての行を読み込むことreadLinesを使用し、最初の5つの単語を分割(列datemonthyeartypeexpenditure)と最後の列detailsとして行の残りの部分を使用しています。

raw_txt <- readLines("123.txt") 

splitted <- lapply(strsplit(raw_txt[-1], " +"), function(x){ 
    one_to_five <- x[1:5] 
    six   <- paste0(x[5:length(x)], collapse=" ") 
    c(one_to_five, six) 
}) 

# Bind together the elements in "splitted": 
df <- do.call(rbind, splitted) 

# Give the columns the right names: 
colnames(df) <- strsplit(raw_txt[1], " +")[[1]] 

結果:

 date   month year type  expenditure details                    
[1,] "10/31/2017" "Oct" "2017" "food"  "10.89"  "10.89 Point Of Sale Withdrawal 17203473997 TRESIDDER U2 STANFORD CAUS"    
[2,] "10/31/2017" "Oct" "2017" "uber"  "4.80"  "4.80 Point Of Sale Withdrawal 44519795098 UBER TRIP F73MU HELP.UBER.COMCAUS"   
[3,] "10/31/2017" "Oct" "2017" "instacart" "99.00"  "99.00 Point Of Sale Withdrawal 44534891998 INSTACART SUBSCRIPTION HTTPSINSTACARCAUS" 
[4,] "10/31/2017" "Oct" "2017" "food"  "8.45"  "8.45 Point Of Sale Withdrawal 22607113998 CLARK CENTER-BIO-X CAF STANFORD CAUS"  
[5,] "10/31/2017" "Oct" "2017" "food"  "4.00"  "4.00 Point Of Sale Withdrawal 33426639883 COUPA CAFE Y2E2 STANFORD CAUS"    
[6,] "10/31/2017" "Oct" "2017" "uber"  "4.52"  "4.52 Point Of Sale Withdrawal 42029000200217 UBER TRIP QZ7W5 HELP.UB800-5928996 CAUS" 
[7,] "10/30/2017" "Oct" "2017" "food"  "5.85"  "5.85 Point Of Sale Withdrawal 44519950998 UBER TRIP HOOMP HELP.UBER.COMCAUS"   
[8,] "10/30/2017" "Oct" "2017" "uber"  "23.20"  "23.20 Point Of Sale Withdrawal 33428390882 COUPA CAFE LYTTON PALO ALTO CAUS"   
[9,] "10/30/2017" "Oct" "2017" "food"  "7.52"  "7.52 Point Of Sale Withdrawal 34530890882 PANDA EXPRESS #2035 STANFORD CAUS" 
関連する問題