示例数据:
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))
但是如果我想要得到一个特定的名字,没有什么是有效的:
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))
这必须很简单,但它让我抓狂..
发布于 2020-12-04 20:35:25
您不需要使用namesvec <- lapply(dfList, function(x) lapply(x, names))
来获取列表中的所有名称。使用:
cols <- lapply(dfList, names)
cols
#[[1]]
#[1] "V1" "V2" "V3"
#[[2]]
#[1] "V1" "V2" "V3"
现在,要提取特定的列名,请使用:
#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"
发布于 2020-12-05 04:56:51
我们可以使用map
library(purrr)
map(dfList, names)
https://stackoverflow.com/questions/65143617
复制相似问题