首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取列表中特定df列的名称

获取列表中特定df列的名称
EN

Stack Overflow用户
提问于 2020-12-04 20:31:47
回答 2查看 25关注 0票数 0

示例数据:

代码语言:javascript
运行
复制
df1 <- as.data.frame(rbind(c(1,2,3), c(1, NA, 4), c(NA, NA, NA), c(4,6,7), c(4, 8, NA)))
df2 <- as.data.frame(rbind(c(1,2,3), c(1, NA, 4), c(4,6,7), c(NA, NA, NA), c(4, 8, NA)))

dfList <- list(df1,df2)
colnames <- c("A","B","C") 

dfList[[1]]

#  V1 V2 V3
# 1  1  2  3
# 2  1 NA  4
# 3 NA NA NA
# 4  4  6  7
# 5  4  8 NA

dfList[[2]]

#  V1 V2 V3
# 1  1  2  3
# 2  1 NA  4
# 3  4  6  7
# 4 NA NA NA
# 5  4  8 NA

# I know I can get the names out like this:

namesvec <- lapply(dfList, function(x) lapply(x, names))

但是如果我想要得到一个特定的名字,没有什么是有效的:

代码语言:javascript
运行
复制
names(namesvec[[1]][[1]])
colnames(namesvec[[1]][[1]])
rownames(namesvec[[1]][[1]])
# lapply(county_list, function(x) lapply(x[1], names))
# lapply(county_list, function(x) lapply(x[[1]], names))

这必须很简单,但它让我抓狂..

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-04 20:35:25

您不需要使用namesvec <- lapply(dfList, function(x) lapply(x, names))来获取列表中的所有名称。使用:

代码语言:javascript
运行
复制
cols <- lapply(dfList, names)
cols
#[[1]]
#[1] "V1" "V2" "V3"

#[[2]]
#[1] "V1" "V2" "V3"

现在,要提取特定的列名,请使用:

代码语言:javascript
运行
复制
#First column name of first list
cols[[1]][1]
#[1] "V1"

#third column name of first list. 
cols[[1]][3]
[1] "V3"

#first column of second list.
cols[[2]][1]
[1] "V1"
票数 2
EN

Stack Overflow用户

发布于 2020-12-05 04:56:51

我们可以使用map

代码语言:javascript
运行
复制
library(purrr)
map(dfList, names)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65143617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档