删除R中的一行后,数据帧将变为数字
我有一个数据帧删除R中的一行后,数据帧将变为数字,r,R,我有一个数据帧a > a # a is a data frame X1.4 one 1 two 2 three 3 four 4 当我要删除一行时 > a = a[-2,] # remove row 2 它会变成数值 > a [1] 1 3 4 为什么??我希望将它们保留为具有相同行名称和列名的数据帧 以下是dput: > dput(a) structure(list(X1.4 = 1:4), class
a
> a # a is a data frame
X1.4
one 1
two 2
three 3
four 4
当我要删除一行时
> a = a[-2,] # remove row 2
它会变成数值
> a
[1] 1 3 4
为什么??我希望将它们保留为具有相同行名称和列名的数据帧
以下是dput:
> dput(a)
structure(list(X1.4 = 1:4), class = "data.frame", row.names = c("one",
"two", "three", "four"))
我们可以使用
drop=FALSE
a[-2, , drop = FALSE]
# X1.4
#one 1
#three 3
#four 4
由于默认情况下提取显示的drop=TRUE
x[i,j,…,drop=TRUE]
在细节上,它说
下拉-用于矩阵和数组。如果为TRUE,则结果将强制到可能的最低维度(参见示例)。这只适用于提取元素,不适用于替换。有关更多详细信息,请参见drop
或者使用
tidyverse
,使用slice
library(dplyr)
library(tibble)
a %>%
rownames_to_column('rn') %>%
slice(-2) %>%
column_to_rownames('rn')
# X1.4
#one 1
#three 3
#four 4