R: управление данными и имена строк - PullRequest
1 голос
/ 28 декабря 2011

У меня есть следующие данные:

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

Проблема в дополнительных числах 1 to 3, предшествующих полю date. Как от этого избавиться?

Обновление: я хотел бы, чтобы вывод был похож на:

  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, содержащим его значения.

Спасибо.

Ответы [ 3 ]

4 голосов
/ 28 декабря 2011

В продолжение ответа @ Michelle: кадры данных в R должны иметь имена строк.Однако, если вы хотите напечатать фрейм данных без имен строк, вы можете:

print(evolution,row.names=FALSE)

(см. ?print.data.frame)

Это, вероятно, нецелесообразно, но вы можете взломать определение print.data.frame следующим образом для маскировки встроенной функции:

print.data.frame <- function(x,...) { 
   base:::print.data.frame(x,row.names=FALSE,...)
}
2 голосов
/ 28 декабря 2011

от них нельзя избавиться, так как они являются особенностью R, см. ?row.names

0 голосов
/ 28 декабря 2011

Вы хотите опустить столбец транзакции в полученном data.frame?

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

Помогло ли это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...