使用子集创建新的df

迈克尔·坎特拉尔

我正在处理一组文档,需要自动将groupby和子集转换为新文件。我可以手动完成此操作,但是有200多个文档,每个文档中有大约45,000个观察值,因此产生了1,000多个文档。我的想法是在df中使用唯一值的每个实例将具有该唯一名称的所有值保存到具有该名称的df中。在下面的示例中,我现在有3个数据框,分别是:法拉利,福特和奥迪。

value <-  c(1:10)
name <-  c("ferrari","ferrari","ferrari","ford","ford","ford","ford","audi","audi","audi")
data <- data.frame(value,name)
uniques <- unique(data$name)

for(file in uniques){
  file <- subset(data, data$Name == file)
}

这只会导致一个名为0观测值的DF文件。我也尝试了长度df的法线。非常感谢任何帮助-我绝对不习惯编写循环。

罗曼

joran的解决方案很优雅,但也可以用您自己的方法解决。简便的for-loop单线将所有子集保存到Excel文件中。

> audi.xlsx
   value name
8      8 audi
9      9 audi
10    10 audi

> ferrari.xlsx
  value    name
1     1 ferrari
2     2 ferrari
3     3 ferrari

> ford.xlsx
  value name
4     4 ford
5     5 ford
6     6 ford
7     7 ford

for(i in 1:length(uniques)){
    write.xlsx(subset(data, data$name == uniques[i]), paste0(uniques[i], ".xlsx"))
}

数据

library(xlsx)
data <- data.frame(value = c(1:10),
                   name = c(rep("ferrari",3), rep("ford",4), rep("audi",3)))
uniques <- unique(as.character(data$name))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用lapply根据多个条件和子集创建新变量

使用dplyr创建仅为数据子集定义的新变量

使用 R 中的嵌套行子集创建新列

遍历df并创建新的df

使用条件的子集 df - pandas

使用Pandas df.apply创建新列

如何使用原始DF的索引创建新的DataFrame重复行

使用2个参数在df中创建新列

在分组的熊猫df中使用IF-THEN创建新列

使用lapply根据条件创建列表的子集以创建新列表并保留元素名称

根据数据子集创建新的分类变量

从先前数组的子集创建新数组

通过子集数据创建新变量

使用mutate_each更新df的子集

SQL:使用来自现有表/df 的信息创建新表/df

使用数据子集时如何在data.table中创建新列并计算中位数

使用Python中的索引创建具有列表子集的新列表

如何在不同子集上使用data.table的j创建多个新列

如何使用正则表达式创建一个新的 json,它是使用 javascript 的其他 json 的子集?

使用 R 从一个 df 及其不同的列值创建一个新的 df

在for循环中创建新的df库伦

通过迭代创建新的df列

用列表中的值创建新的df

用熊猫遍历df以创建新列

通过使用循环对字典中的所有数据框进行子集化来创建新的数据框

如何使用 dplyr 根据列的子集中的任何一个是否为 NA 创建新列

如何在不创建新数据集的情况下在 R 中进行子集化时使用数学运算

使用R中的查找表基于另一个df创建新列

在预定义的时间中选择一行,然后使用Pandas创建新的DF