Когда я пытаюсь удалить последнюю строку из кадра данных отдельного столбца, я возвращаю вектор вместо кадра данных:
> 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
Мой код является общим, и я не знаю априорно, будет ли кадр данных содержать один или несколько столбцов. Существует ли легкое обходное решение для этой проблемы, которая позволит мне удалить последнюю строку, неважно, сколько столбцов существует?
Попробуйте добавить параметр 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