首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取数据帧某一列中字符串连续出现的次数

获取数据帧某一列中字符串连续出现的次数
EN

Stack Overflow用户
提问于 2015-03-27 17:35:30
回答 3查看 97关注 0票数 1

我需要找出在某个数据帧的列中一个值在另一个值之后出现的次数。

主要逻辑是根据另一列获取特定字符串的出现次数。

例如:

代码语言:javascript
复制
df<- data.frame(fruits = c("apples", "apples", "orange", "pears", "apples", "pears", "pears", "papaya", "papaya"), 
                veggies = c("beans", "carrots", "carrots", "carrots", "brinjal","carrots", "brinjal", "brinjal", "beans"),
                branches=c( "Area1", "Area1", "Area1", "Area2","Area2","Area2", "Area2", "Area3", "Area3" ))

这是我的数据框。我需要知道基于树枝列的水果或蔬菜的数量

当我使用table(df$fruits)

输出为:

代码语言:javascript
复制
apples-3 orange-1 papaya-2  pears-3

输出通常显示所有树枝的苹果和其他水果的总数。我需要准确地得到每个分支的计数。

我所需的输出应该基于列df$Branches

代码语言:javascript
复制
for Area1
   apples-2 orange-1,
for Area2 
   pears-3 apples-1
for Area3 
   papaya-3
EN

回答 3

Stack Overflow用户

发布于 2015-03-27 17:38:52

试试这个:

代码语言:javascript
复制
library(data.table)
setDT(df)[,list(count=.N),list(branches, fruits)]

#   branches fruits count
#1:    Area1 apples     2
#2:    Area1 orange     1
#3:    Area2  pears     3
#4:    Area2 apples     1
#5:    Area3 papaya     2
票数 1
EN

Stack Overflow用户

发布于 2015-03-27 17:53:11

也许只需要使用ftable

代码语言:javascript
复制
> ftable(fruits ~ branches, data = df)
         fruits apples orange papaya pears
branches                                  
Area1                2      1      0     0
Area2                1      0      0     3
Area3                0      0      2     0
> ftable(veggies ~ branches, data = df)
         veggies beans brinjal carrots
branches                              
Area1                1       0       2
Area2                0       2       2
Area3                1       1       0
票数 1
EN

Stack Overflow用户

发布于 2015-03-27 17:59:40

我不知道您期望的输出,但您可以使用dplyr包获取计数:

例如:

代码语言:javascript
复制
library(dplyr)
df %>% count(fruits, branches)
# OR
count(df, fruits, branches)

输出:

代码语言:javascript
复制
Source: local data frame [5 x 3]
Groups: fruits

  fruits branches n
1 apples    Area1 2
2 apples    Area2 1
3 orange    Area1 1
4 papaya    Area3 2
5  pears    Area2 3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29297398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档