首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据ID和另一列中的值传播()数据帧

根据ID和另一列中的值传播()数据帧
EN

Stack Overflow用户
提问于 2017-11-01 23:10:51
回答 1查看 957关注 0票数 4

我已经查找了几个示例,但没有发现任何已过滤的启用值&它们的日期。

代码语言:javascript
复制
Date <-c('3/13/2017 6:21', '3/20/2017 6:28','3/13/2017 6:22','3/20/2017 6:28',' 3/13/2017 6:23','3/20/2017 6:28','3/13/2017 6:24',' 3/20/2017 6:28', ' 3/24/2017 6:28')
Enabled_value<-c(0,1,0,1,0,1,0,1,0)
Helper<-c('39RTU1','39RTU1','39RTU2','39RTU2','39RTU2','39RTU3','39RTU3','39RTU4','39RTU4', '39RTU4')

看上去像:

代码语言:javascript
复制
Helper      Date(Enabled Value =0)     Date (Enabled Value =1) 
39RTU1       3/13/2017 6:20            3/20/2017 6:28
39RTU2       3/13/2017 6:21            3/20/2017 6:28
39RTU3       3/13/2017 6:22            3/20/2017 6:28
39RTU4       3/13/2017 6:24            3/20/2017 6:28
39RTU4       3/24/2017 6:28

正如您所看到的,对于每个观察,我都有时间戳--每一行都应该是一个实例(即从Enabled_value从0移到1,如果单元的最后一个Enabled_value = 0,则应该有一个新行(参见下面的39RTU4 )。

我已经做了大量的工作来减少这个数据集(从500 K减少到2k行)。

我正在尝试使用tidyrdplyr,但是我的spread一直在运行错误。

代码语言:javascript
复制
> sorted_data1<-spread(sorted_data,Enabled_Value,Helper)
Error: Duplicate identifiers for rows (1340, 1342)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-01 23:43:19

看上去这些行并不是根据你试图传播的方式来唯一识别的。因此,首先按助手和启用值计算索引。(注意,我稍微更改了示例数据,因为其中一个数据的长度为10,而另两个数据的长度为9)。

希望这能帮上忙。如果这不是你想要的,请随时进一步澄清。

代码语言:javascript
复制
Date <-c('3/13/2017 6:21', '3/20/2017 6:28','3/13/2017 6:22','3/20/2017 6:28',' 3/13/2017 6:23','3/20/2017 6:28','3/13/2017 6:24',' 3/20/2017 6:28', ' 3/24/2017 6:28')
Enabled_value<-c(0,1,0,1,0,1,0,1,0)
Helper<-c('39RTU1','39RTU1','39RTU2','39RTU2','39RTU2','39RTU3','39RTU3','39RTU4','39RTU4')

df <- tibble(Date, Enabled_value, Helper)
df %>% 
  group_by(Helper, Enabled_value) %>% 
  mutate(count = 1:n()) %>% 
  spread(Enabled_value, Date) %>% 
  rename(Enabled_value_0 = `0`,
         Enabled_value_1 = `1`)

# A tibble: 5 x 4
# Groups:   Helper [4]
  Helper count Enabled_value_0 Enabled_value_1
*  <chr> <int>           <chr>           <chr>
1 39RTU1     1  3/13/2017 6:21  3/20/2017 6:28
2 39RTU2     1  3/13/2017 6:22  3/20/2017 6:28
3 39RTU2     2  3/13/2017 6:23            <NA>
4 39RTU3     1  3/13/2017 6:24  3/20/2017 6:28
5 39RTU4     1  3/24/2017 6:28  3/20/2017 6:28
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47065082

复制
相关文章

相似问题

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