子集化后 tibble 中的行号 - R 编程

row numbers in tibble after subsetting - R programming

子设置tibble后如何显示行号。

这是示例,首先我对经典数据框进行子设置,结果显示行号为 (106,118,119,123 ...) 的观察结果

下面当我子设置 tibble 时,它​​没有给出观察行号,而是显示 1,2,3,4.....

我可以让tibble在子设置后显示观察行号吗?

> iris[iris$Sepal.Length >7.4,]
    Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
106          7.6         3.0          6.6         2.1 virginica
118          7.7         3.8          6.7         2.2 virginica
119          7.7         2.6          6.9         2.3 virginica
123          7.7         2.8          6.7         2.0 virginica
132          7.9         3.8          6.4         2.0 virginica
136          7.7         3.0          6.1         2.3 virginica
> iris_tibble=as.tibble(iris)
> iris_tibble[iris_tibble$Sepal.Length >7.4,]
# A tibble: 6 x 5
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species  
         <dbl>       <dbl>        <dbl>       <dbl> <fct>    
1          7.6         3            6.6         2.1 virginica
2          7.7         3.8          6.7         2.2 virginica
3          7.7         2.6          6.9         2.3 virginica
4          7.7         2.8          6.7         2   virginica
5          7.9         3.8          6.4         2   virginica
6          7.7         3            6.1         2.3 virginica

我认为 data.table 不支持行名称。但是你可以

iris <- iris %>%
    add_rownames() %>%
    as.tibble(iris)

那么您应该有一个列,其中包含过滤时将保留的行号。

您可以创建一个包含行名称的列,然后执行 filtering/subsetting。

使用dplyr:

iris %>%
  mutate(row_name = row_number()) 

或使用tibble:

rowid_to_column(iris, "row_name")