Creating a data frame from nrow results of different vectors/data frames
我在不同的 data.frames 中有一些向量。我想计算每个向量的观察次数并从中列出。第一列应该是数据框名称,第二列应该是每个数据框中的观察数。一个最小的例子可能是,
1
2 3 4 5 6 7 8 9 10 11 12 13 14 |
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) d <- c(a, b, c) |
输出e是这样的,
1
2 3 4 5 |
> e
d 1 5 2 2 3 9 |
但是,我想要这样,
1
2 3 4 5 |
> e
df.name nobs 1 x1 5 2 y1 2 3 z1 9 |
任何帮助将不胜感激。
- 您在哪里找到 x2 和 x3? – 您在 d (data.framec) 处也有错字。此外,您正在手动完成所有操作,因此请手动添加名称……即setNames(c(a, b, c), c(‘x1’, ‘y1’, ‘z1’))
- 是的。这是一个错字。修复它。
我们可以用 base R
做到这一点
1
|
stack(lapply(mget(c(“x1″,”y1″,”z1”)), nrow))[2:1]
|
这是你想要的吗?
1
2 3 4 5 6 7 8 9 10 11 12 13 |
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) |
如果有多个列 names 会出现异常。也许你想要 names=paste0(“x”,1:length(targlist)) 代替。但这对你的例子来说很有趣。
- 是的。谢谢你。
来源:https://www.codenong.com/50136369/