gpt4 book ai didi

r - 从数据框列表创建数据框名称向量

转载 作者:行者123 更新时间:2023-12-01 04:47:57 28 4
gpt4 key购买 nike

我有一个数据框列表,我想创建一个字符向量,其中包含满足特定条件的数据框名称。在这种情况下,我想要包含至少 1 个观察值的数据框的名称。我需要在向量中使用这些名称,以便稍后在另一个函数中使用。

数据框列表由拆分功能自动创建。为了重现性,这里有一个数据框列表:

df1 <- data.frame(replicate(2,sample(0:1,5,rep=TRUE)))
df2 <- data.frame(replicate(2,sample(0:1,5,rep=TRUE)))
df3 <- data.frame(replicate(0,sample(0:1,5,rep=TRUE))) #empty

mylist <- list(df1, df2,df3) #create list of data frames

mylist2 <- mylist[sapply(mylist, function(x) dim(x)[1]) > 0] #subset list so that df's with no observations are dropped

现在,我需要的是一个字符向量,其中包含 mylist2 中数据框的名称。 (在本例中,“df1”和“df2”。)

谢谢!

最佳答案

如果您希望这在某种程度上自动化,例如您的环境中有大量 data.frames,您可能希望在一行中使用模式匹配来选择它们:

mylist = do.call("list", mget(grep("df", ls(), value=T)))
mylist2 <- mylist[sapply(mylist, function(x) dim(x)[1]) > 0]

这将创建第一个列表,其中包含名称中包含“df”的所有 data.frames,同时将它们的名称保留为列表元素的属性。

然后我将您的过滤器应用于 1 元素 data.frames,您只需检索名称:
names(mylist2)
#### [1] "df1" "df2"

关于r - 从数据框列表创建数据框名称向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44953239/

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