2011-12-28 9 views
1

I以下のデータがあります。R:データ管理と行名

transaction <- c(1,2,3); 
date <- c("2010-01-31","2010-02-28","2010-03-31"); 
type <- c("debit", "debit", "credit"); 
amount <- c(-500, -1000.97, 12500.81); 
oldbalance <- c(5000, 4500, 17000.81) 
evolution <- data.frame(transaction, date, type, amount, oldbalance, row.names=transaction, stringsAsFactors=FALSE); 
evolution <- transform(evolution, newbalance = oldbalance + amount); 
evolution 

私はrow.names= transactionを指定しても出力が得られます。

transaction  date type amount oldbalance newbalance 
1   1 2010-01-31 debit -500.00 5000.00 4500.00 
2   2 2010-02-28 debit -1000.97 4500.00 3499.03 
3   3 2010-03-31 credit 12500.81 17000.81 29501.62 

問題がdateの前に追加の数字1 to 3ですフィールド。これを取り除く方法は?

アップデート:私は、出力は次のようになりたい:

transaction  date type amount oldbalance newbalance 
      1 2010-01-31 debit -500.00 5000.00 4500.00 
      2 2010-02-28 debit -1000.97 4500.00 3499.03 
      3 2010-03-31 credit 12500.81 17000.81 29501.62 

その値を含むtransaction列です。

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

+0

計算しません。トランザクションは列であり、 'evolution [、-1]'で削除することができます。 –

答えて

4

は@にフォローアップ参照してください。しかし、あなたは可能性行名なしでデータフレームを印刷する場合:

?print.data.frameを参照)

print(evolution,row.names=FALSE) 

それはおそらく得策ですが、次のように構築さをマスクするprint.data.frameの定義をハック可能性関数内:

print.data.frame <- function(x,...) { 
    base:::print.data.frame(x,row.names=FALSE,...) 
} 
+0

であり、もっとも混乱しているのはOPが与えた更新された出力ですが、まだ行名を持っていますが、データフレームに変数を残したままトランザクションデータを削除しています。 transaction == row.nameの場合、メソッドを使用すると、row.nameにはまだアクセス可能であるため、そのレベルで操作したい場合は、OPへのポインタを知ることができます。 – Michelle

+0

@Michelle出力を修正しました。 – yCalleecharan

0

結果のdata.frameでトランザクション列を省略しますか?

evolution <- data.frame(date, type, amount, oldbalance, row.names=transaction, stringsAsFactors=FALSE) 

助けになりましたか? Rのデータフレームの行名を持つ必要があります。

+0

@ DrDomありがとうございますが、トランザクションの見出しは表示されません。私は日付の列の直前に表示される1から3の2番目のセットを削除したいと思います。取引列はまだここにあるはずです。 – yCalleecharan

2

彼らはRの特徴あるとして、あなたは、それらを取り除くことができない、ミシェルの答えは?row.names

関連する問題