首页 > 解决方案 > R:如何将相同的变量(行号)添加到列表中的每个数据框?

问题描述

以下命令添加一个数字变量,该变量指示行号到数据帧:

some_data$.id <- as.numeric(rownames(some_data)) 

我有一个包含许多数据框的列表,我想将上面定义的变量添加到该列表中的每个数据框。我怀疑我需要像 lapply 这样的东西,但我不知道具体如何。我该怎么做呢?

标签: rlistdataframe

解决方案


你可以purrr::map使用tibble::rowid_to_column

library(tidyverse)
lst <- list(mtcars, iris)
map(lst, ~rowid_to_column(.x, ".id"))
#[[1]]
#   .id  mpg cyl  disp  hp drat    wt  qsec vs am gear carb
#1    1 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
#2    2 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
#3    3 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
#4    4 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
#5    5 18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
#...
#
#[[2]]
#    .id Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
#1     1          5.1         3.5          1.4         0.2     setosa
#2     2          4.9         3.0          1.4         0.2     setosa
#3     3          4.7         3.2          1.3         0.2     setosa
#4     4          4.6         3.1          1.5         0.2     setosa
#5     5          5.0         3.6          1.4         0.2     setosa
#...

对于行名(而不是行号)只需替换rowid_to_columnrownames_to_column.


推荐阅读