我在不同的data.frames中有一些向量。我想计算每个向量的观察数量并从中列出一个列表。第一列应为数据帧名称,第二列应为每个数据帧中的观察数量。最小的例子可能是,
x <- c(1, 3, 4, 5, 6)
x1 <- data.frame(x)
y <- c(3, 9)
y1 <- data.frame(y)
z <- c(23, 43, 23, 12, 1, 3, 7,8,9)
z1 <- data.frame(z)
a <- nrow(x1)
b <- nrow(y1)
c <- nrow(z1)
d <- c(a, b, c)
e <- data.frame(d)
e
输出e看起来像这样,
> e
d
1 5
2 2
3 9
但是,我想以这种方式,
> e
df.name nobs
1 x1 5
2 y1 2
3 z1 9
任何帮助都会受到高度赞赏。
答案 0 :(得分:2)
这是你想要的吗?
x <- c(1, 3, 4, 5, 6)
x1 <- data.frame(x)
y <- c(3, 9)
y1 <- data.frame(y)
z <- c(23, 43, 23, 12, 1, 3, 7,8,9)
z1 <- data.frame(z)
library(purrr)
targlist <- list(x1,y1,z1)
data.frame(
names=unlist(map(targlist,names)),
nobs=unlist(map(targlist,nrow))
)
如果有多个col names
行为不端。也许你想要names=paste0("x",1:length(targlist))
。但这对你的榜样来说很有趣。
答案 1 :(得分:2)
我们可以使用base R
stack(lapply(mget(c("x1", "y1", "z1")), nrow))[2:1]