Удалите строки из кадра данных отдельного столбца

Когда я пытаюсь удалить последнюю строку из кадра данных отдельного столбца, я возвращаю вектор вместо кадра данных:

> df = data.frame(a=1:10)
> df
    a
1   1
2   2
3   3
4   4
5   5
6   6
7   7
8   8
9   9
10 10

> df[-(length(df[,1])),]
[1] 1 2 3 4 5 6 7 8 9

Поведение, которое я ищу, - то, что происходит, когда я использую эту команду на кадре данных на два столбца:

> df = data.frame(a=1:10,b=11:20)
> df
    a  b
1   1 11
2   2 12
3   3 13
4   4 14
5   5 15
6   6 16
7   7 17
8   8 18
9   9 19
10 10 20

> df[-(length(df[,1])),]
  a  b
1 1 11
2 2 12
3 3 13
4 4 14
5 5 15
6 6 16
7 7 17
8 8 18
9 9 19

Мой код является общим, и я не знаю априорно, будет ли кадр данных содержать один или несколько столбцов. Существует ли легкое обходное решение для этой проблемы, которая позволит мне удалить последнюю строку, неважно, сколько столбцов существует?

6
задан chrisamiller 12 July 2010 в 21:51
поделиться

1 ответ

Попробуйте добавить параметр drop = FALSE :

R> df[-(length(df[,1])), , drop = FALSE]
  a
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
14
ответ дан 8 December 2019 в 17:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: