2013-02-27 6 views
8

私はRプログラミングに新しいですし、私はRが読みたいIDを表すテキストR.内のファイルの列の読書番号

一つ、列7が数値であると言うことができますし、各番号を読みたいですあたかも文字列であるかのような数字。そして、私は

mydata<-(read.table(filename.txt)) 
ID=mydata[7] 
freq=table(ID) 

これは動作しますが、それはIDを取るを試してみました (後で、私は後者の使用のために与えられたIDに各IDの周波数を割り当てることができるような)ファイルに表示された各IDの回数を数えます数字として今、私は

freq=table(as.character(ID)) 

を試してみました。しかし、それは私が

Number of cases in table: 1 
Number of factors: 1 
+0

「r」は「R」を見つけることができます。 –

+0

@Juliusだから 'r'と' R'は同じですか? –

+0

@GrijeshChauhan、私はそれをRと呼ぶのがより一般的だと言うでしょうが、ここでは 'r'タグが正しいです。 – Julius

答えて

2

を取得するだけで1つの文字列として及び

summary(freq) 

から列全体のIDを取り、私はあなたのデータフレームにカンマを逃したと思います。あなたがcolClasses引数を使用して、各列の型を指定することができ、テキストファイルからデータフレームにデータを読み込む時に

mydata<-(read.table(filename.txt)) 
ID=mydata[,7] #added comma 
freq=table(as.character(ID)) 
9

。私のコンピュータにファイルがあることを下に見てください:

> head(read.csv("R/Data/ZipcodeCount.csv")) 
    X zipcode stateabb countyno countyname 
1 1  401  NY  119 WESTCHESTER 
2 391  501  NY  103  SUFFOLK 
3 392  544  NY  103  SUFFOLK 
4 393  601  PR  1 ADJUNTAS 
5 630  602  PR  3  AGUADA 
6 957  603  PR  5 AGUADILLA 
> head(read.csv("R/Data/ZipcodeCount.csv",colClasses=c(rep("factor",5)))) 
    X zipcode stateabb countyno countyname 
1 1 00401  NY  119 WESTCHESTER 
2 391 00501  NY  103  SUFFOLK 
3 392 00544  NY  103  SUFFOLK 
4 393 00601  PR  001 ADJUNTAS 
5 630 00602  PR  003  AGUADA 
6 957 00603  PR  005 AGUADILLA 

> zip<-read.csv("R/Data/ZipcodeCount.csv",colClasses=c(rep("factor",5))) 
> str(zip) 
'data.frame': 53424 obs. of 5 variables: 
$ X   : Factor w/ 53424 levels "1","10000081",..: 1 36316 36333 36346 43638 52311 19581 23775 26481 26858 ... 
$ zipcode : Factor w/ 41174 levels "00401","00501",..: 1 2 3 4 5 6 6 7 8 9 ... 
$ stateabb : Factor w/ 60 levels ""," ","AK","AL",..: 41 41 41 46 46 46 46 46 46 46 ... 
$ countyno : Factor w/ 380 levels "","000","001",..: 106 95 95 3 5 7 5 7 7 9 ... 
$ countyname: Factor w/ 1925 levels "","ABBEVILLE",..: 1844 1662 1662 9 10 11 10 11 11 12 ... 
> head(table(zip[,"zipcode"])) 

00401 00501 00544 00601 00602 00603 
    1  1  1  1  1  2 

あなたが見るように、Rはもはや数字として扱われていません。あなたの場合は、最初の6列のクラスを指定してから、factorを7番目の列として選択する必要があります。したがって、最初の6列が数値の場合は、colClasses = c(rep("numeric",6),"factor")のようになります。 as.characterあなたtableが正常に動作しなければならない(すなわちfreq <- table(ID))、?tableから引用し、あなたの入力ができずに

4

:( 文字列を含む)の要素として解釈することができ

1つまたは複数のオブジェクト、またはコンポーネントが と解釈できるリスト(またはデータフレーム)。 (as.tableとas.data.frameの場合、引数は の特定のメソッドに渡されます)。