按dplyr删除行,但保留行名索引 让我们考虑以下数据: df1 <-data.frame('col_1'=rnorm(100),'col_2'=runif(100),'col_3'=rexp(100)) head(df1) col_1 col_2 col_3 1 1.1626853 0.7081688 0.1356186 2 -0.5859245 0.8679017 0.4680558 3 1.7854650 0.4107538 0.5867553 4 -1.3325937 0.3032165 0.4111656 5 -0.4465668 0.8882200 3.4235329 6 0.5696061 0.4715614 1.0981746

按dplyr删除行,但保留行名索引 让我们考虑以下数据: df1 <-data.frame('col_1'=rnorm(100),'col_2'=runif(100),'col_3'=rexp(100)) head(df1) col_1 col_2 col_3 1 1.1626853 0.7081688 0.1356186 2 -0.5859245 0.8679017 0.4680558 3 1.7854650 0.4107538 0.5867553 4 -1.3325937 0.3032165 0.4111656 5 -0.4465668 0.8882200 3.4235329 6 0.5696061 0.4715614 1.0981746,r,dplyr,R,Dplyr,但是,我丢失了唯一的编号,即我只有一个新的数据框,其中的行是1-49,我想删除旧的索引,只删除数据。是否有可能做到这一点?最好的方法是创建一个新列,其中包含行索引,因为TIBLES不支持行名 library(dplyr) df1 %>% mutate(row = row_number()) %>% filter(col_1 > 0) 最好的方法是创建一个带有行索引的新列,因为TIBLES不支持行名 library(dplyr) df1 %>% mutat

但是,我丢失了唯一的编号,即我只有一个新的数据框,其中的行是1-49,我想删除旧的索引,只删除数据。是否有可能做到这一点?

最好的方法是创建一个新列,其中包含行索引,因为TIBLES不支持行名

library(dplyr)

df1 %>%
  mutate(row = row_number()) %>%
  filter(col_1 > 0)

最好的方法是创建一个带有行索引的新列,因为TIBLES不支持行名

library(dplyr)

df1 %>%
  mutate(row = row_number()) %>%
  filter(col_1 > 0)

要保留行索引,请尝试以下操作:

library(tidyverse)
#Data
df1 <-data.frame('col_1'=rnorm(100),'col_2'=runif(100),'col_3'=rexp(100))
#Code
new <- df1 %>% rownames_to_column('id') %>%
  filter(col_1>0) %>%
  column_to_rownames('id')

要保留行索引,请尝试以下操作:

library(tidyverse)
#Data
df1 <-data.frame('col_1'=rnorm(100),'col_2'=runif(100),'col_3'=rexp(100))
#Code
new <- df1 %>% rownames_to_column('id') %>%
  filter(col_1>0) %>%
  column_to_rownames('id')

使用
dplyr
,我们可以使用
slice

library(dplyr)
df1 %>%
   mutate(row = row_number()) %>%
   slice(which(col_1 > 0))

使用
dplyr
,我们可以使用
slice

library(dplyr)
df1 %>%
   mutate(row = row_number()) %>%
   slice(which(col_1 > 0))

我认为
rownames\u to_column()
from
tibble
在技术上可能更安全,因为它保留了“真正的”原始行索引,而使用
row\u编号()
则假定顺序索引,这在这里是正确的,但可能并不总是正确的。我认为
rownames\u to_column()
from
tibble
在技术上可能更安全,因为它保留了“真实”的原始行索引,而使用
row\u number()
假定顺序索引,这在这里是真实的,但可能并不总是如此。