如何从存储数据框行的列表中提取行号并写入vector
从存储DataFrame行的列表中提取行号生成向量
我有一个由单个行DataFrame组成的列表,定义如下:
kl <- list(structure(list(GROUP = "1", col6 = NA_character_, col7 = NA_character_, dif = NA_character_, p.value = NA_character_), row.names = 1L, class = "data.frame"), structure(list(GROUP = "2", col6 = NA_character_, col7 = NA_character_, dif = NA_character_, p.value = NA_character_), row.names = 3L, class = "data.frame"), structure(list(GROUP = "3", col6 = NA_character_, col7 = NA_character_, dif = NA_character_, p.value = NA_character_), row.names = 5L, class = "data.frame"), structure(list(GROUP = "4", col6 = NA_character_, col7 = NA_character_, dif = NA_character_, p.value = NA_character_), row.names = 7L, class = "data.frame"))
需要提取每个DataFrame的行号,生成包含1,3,5,7的整数向量。
实现方案
基础R方法
利用sapply遍历列表,提取每个元素的行名并转换为整数:
kl.vec <- sapply(kl, function(df) as.integer(row.names(df)))
tidyverse方法(使用purrr)
如果使用tidyverse工具集,map_int可以更直观地完成整数向量的生成:
library(purrr) kl.vec <- map_int(kl, ~ as.integer(row.names(.x)))
两种方法执行后,kl.vec都会得到c(1, 3, 5, 7)的结果。
内容的提问来源于stack exchange,提问作者GOGA GOGA
相关产品推荐
相关产品推荐

