gpt4 book ai didi

r - 如何获取列表中 data.frame 的名称?

转载 作者:行者123 更新时间:2023-12-04 11:28:44 24 4
gpt4 key购买 nike

如何从列表中获取数据框的名称?当然,get()获取对象本身,但我想在另一个函数中使用它的名称。这是用例,以防您更愿意建议解决方法:

lapply(somelistOfDataframes, function(X) {
ddply(X, .(idx, bynameofX), summarise, checkSum = sum(value))
})

每个数据框中有一列与列表中的数据框同名。我怎样才能得到这个名字 bynameofX ? names(X)将返回整个向量。

编辑:这是一个可重现的示例:
df1 <- data.frame(value = rnorm(100), cat = c(rep(1,50),
rep(2,50)), idx = rep(letters[1:4],25))
df2 <- data.frame(value = rnorm(100,8), cat2 = c(rep(1,50),
rep(2,50)), idx = rep(letters[1:4],25))

mylist <- list(cat = df1, cat2 = df2)
lapply(mylist, head, 5)

最佳答案

我会以这种方式使用列表的名称:

dat1 = data.frame()
dat2 = data.frame()
l = list(dat1 = dat1, dat2 = dat2)
> str(l)
List of 2
$ dat1:'data.frame': 0 obs. of 0 variables
$ dat2:'data.frame': 0 obs. of 0 variables

然后使用 lapply + ddply 像:
lapply(names(l), function(x) {
ddply(l[[x]], c("idx", x), summarise,checkSum = sum(value))
})

这仍然未经测试,没有可重复的答案。但它应该可以帮助您朝着正确的方向前进。

编辑(ran2):这是使用可重现示例的代码。
l <- lapply(names(mylist), function(x) {
ddply(mylist[[x]], c("idx", x), summarise,checkSum = sum(value))
})
names(l) <- names(mylist); l

关于r - 如何获取列表中 data.frame 的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9002227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com