通过重复字符串分割数据帧

用户名

我有一个数据框,其中一列将重复相同的字符串许多行(它有所不同)。我想将基于每个重复名称的数据框拆分为单独的数据框(输出可以是列表)。例如对于此数据框:

dat = data.frame(names=c('dog','dog','dog','dog','cat','cat'), value=c(1,2,3,4,5,5)) 

输出应为

   names value
   dog     1
   dog     2
   dog     3
   dog     4

   names value
   cat     5
   cat     5

我应该提到有成千上万个不同的重复名称。

阿克伦

您可以使用split函数,该函数会将输出显示在中list我认为将数据集包含在其中会更容易,list因为大多数操作都可以在列表本身中执行

 split(dat, dat$names)

如果您想将'dog','cat','dog'拆分为具有3个元素的“列表”(基于@BondedDust显示的示例),则一个选项是

 indx <- inverse.rle(within.list(rle(as.character(dat$names)), 
                values <- seq_along(values)))
 split(dat, indx)

或使用的开发版本data.table,我们可以rleid用来创建分组变量

 library(data.table)#v1.9.5+
 setDT(dat)[, grp:= rleid(names)]

然后通过将“ grp”指定为分组变量,对不同的组使用标准的data.table操作。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过重复单个字符来构建字符串

通过重复单个字符来构建字符串

在字符串匹配时从数据库检索数据,并跳过重复值

根据单元格字符串分割数据帧

通过列中的子字符串屏蔽数据帧

通过字符串前缀连接熊猫数据帧

通过字符串解析合并数据帧行

在重复字符之间分割字符串

通过引用字符串位置检查数据帧列中的子字符串

当分隔字符在字符串中时,将字符向量分割为数据帧

将重复字符串的数据帧行转换为非重复列表

重复分割数字和字符串

如何在R中的数据帧中最后出现重复的字符串

列重复时如何从字符串写到pd数据帧?

在熊猫的数据帧的列中选择具有重复字符串标签的行

删除字符串中的重复项,但删除整个数据帧

在火花数据帧的列中重复一组字符串值

与字符串等效的数据帧“差异”

通过文本语言分割字符串

通过点lua分割字符串

通过前缀分割字符串的算法

当要分割的字符串数不确定时,在分隔符上分割数据帧列

Postgres 9.2 INSERT 从带有分隔值的字符串中跳过重复项

如何通过重复1列并依次重复原始数据帧的第二列来创建新的数据帧?

如何通过R中数据帧的字符串向量运行for循环?

通过子字符串搜索连接pyspark中的两个数据帧

Pyspark:使用字符串格式通过正则表达式过滤数据帧?

如何通过不包含子字符串的单元格过滤熊猫数据帧?

通过字符串匹配来匹配和合并两个数据帧