gpt4 book ai didi

r - 如何将数据框分成关于 R 中列名的数据框列表?

转载 作者:行者123 更新时间:2023-12-05 00:35:28 25 4
gpt4 key购买 nike

假设我有以下数据框:

df <- data.frame(BR.a=rnorm(10), BR.b=rnorm(10), BR.c=rnorm(10),
USA.a=rnorm(10), USA.b = rnorm(10), FRA.a=rnorm(10), FRA.b=rnorm(10))

我想创建一个数据框列表,用列名的第一部分将它们分开,即以“BR”开头的列将是列表的一个元素,以“USA”开头的列将是另一个,等等。

我能够获取列名并使用 strsplit 将它们分开.但是,我不确定迭代它并分离数据帧的最佳方法是什么。
strsplit(names(df), "\\.")

给我一个列表,其中顶级元素是列的名称,第二级是由 "." 分割的相同元素.

我如何迭代此列表以获得以相同子字符串开头的列的索引号,并将这些列分组为另一个列表的元素?

最佳答案

这仅在列名始终采用您拥有的形式(基于“.”拆分)并且您希望根据第一个“.”之前的标识符进行分组时才有效。

df <- data.frame(BR.a=rnorm(10), BR.b=rnorm(10), BR.c=rnorm(10),
USA.a=rnorm(10), USA.b = rnorm(10), FRA.a=rnorm(10), FRA.b=rnorm(10))

## Grab the component of the names we want
nm <- do.call(rbind, strsplit(colnames(df), "\\."))[,1]
## Create list with custom function using lapply
datlist <- lapply(unique(nm), function(x){df[, nm == x]})

关于r - 如何将数据框分成关于 R 中列名的数据框列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9281030/

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