【发布时间】:2018-05-21 17:48:00
【问题描述】:
我想分两步解决我的问题,以便我更好地理解编码方式。
第 1 部分:
假设我有一个这样的列表:
x <- data.frame(replicate(5,sample(0:100,10,rep=TRUE)))
y <- data.frame(replicate(5,sample(0:100,10,rep=TRUE)))
z <- list(x, y)
我想获取每个列表的每一列的数字范围。 我真的不明白如何将 lapply 与 sapply 结合起来以获得列表中数据框每一列的结果。关于如何做到这一点的任何想法?
如果我想获得第一个列表元素的第三列的范围,我可以正常运行:
range(z[[1]][[2]])
第 2 部分:
我的问题的第二部分更进一步。这次我将在我的数据框中添加一个包含字符的列。
a <- data.frame(replicate(5,sample(0:100,10,rep=TRUE)))
a$x6 <- letters[1:10]
b <- data.frame(replicate(5,sample(0:100,10,rep=TRUE)))
b$x6 <- letters[1:10]
c <- list(x, y)
我想获取每个列表的每一列的数字范围,但第 6 列除外,它不是数字。我不想删除此列,而只想查询数字列。
关于如何有效地做到这一点的任何想法?我认为 lapply 和 sapply 的组合是最好的。
如果您对如何使用嵌套循环执行此操作有一个想法,那也很有趣。也许第二部分也只适用于嵌套循环......
【问题讨论】:
标签: r nested-loops lapply sapply