For 循环用于计算列表中每个表的行数

问题描述 投票:0回答:1

我需要计算包含多个表的列表中每个表的行数。我写了一个循环,但它不能做我想要的: 这是我的虚拟数据:

obj1 <- list(bodyPart = c("leg", "arm", "knee"),side = c("LEFT", "RIGHT", "LEFT"), device = c("LLI", "LSM", "GHT"), id = c("AA", "BB", "CC")) %>%  as.data.frame()
obj2 <- list(bodyPart = c("leg", "arm", "knee"), side = c("LEFT", "LEFT", "LEFT"), device = c("GOM", "LSM", "YYY"), id = c("ZZ", "DD", "FF")) %>%  as.data.frame()

x <- list(M = obj1, B = obj2)

还有 for 循环:

for (table in names(x)) {
  print(table)
print(nrow(table))  
}

我希望输出是每个表的行数(M = 3,B = 3),但它只产生每个表的 NULL。 您能纠正我吗?预先感谢!

r for-loop row
1个回答
0
投票

您应该使用

x[[table]]
来索引
x

中的元素
for (table in names(x)) {
    print(table)
    print(nrow(x[[table]]))
}

这给出了

[1] "M"
[1] 3
[1] "B"
[1] 3

否则,

table
只是您列表中的名称
x
,而不是它所指的内容。

© www.soinside.com 2019 - 2024. All rights reserved.