Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中有没有一种方法可以将组中的各种项目转换为多个列?_R - Fatal编程技术网

在R中有没有一种方法可以将组中的各种项目转换为多个列?

在R中有没有一种方法可以将组中的各种项目转换为多个列?,r,R,假设我有这样一个数据帧: df<-data.frame(group=c(1, 1, 1, 1, 1,1, 2, 2, 2,2,2,2, 3,3,3,3,3,3), date=c("2000-01-01", "2000-01-02", "2000-01-01", "2000-01-02", "2000-01-01", "2000-01-01", "2000-01-03", "2000-01-04", "2000-01

假设我有这样一个数据帧:

 df<-data.frame(group=c(1, 1, 1, 1, 1,1, 2, 2, 2,2,2,2, 3,3,3,3,3,3),
               date=c("2000-01-01", "2000-01-02", "2000-01-01", "2000-01-02", "2000-01-01", "2000-01-01",
                      "2000-01-03", "2000-01-04", "2000-01-05", "2000-01-03", "2000-01-04", "2000-01-05",
                      "2000-01-06", "2000-01-06", "2000-01-02", "2000-01-05", "2000-01-02", "2000-01-03"))
   group       date     want_1     want_2     want_3     want_4
1      1 2000-01-01 2000-01-01 2000-01-02       <NA>       <NA>
2      1 2000-01-02 2000-01-01 2000-01-02       <NA>       <NA>
3      1 2000-01-01 2000-01-01 2000-01-02       <NA>       <NA>
4      1 2000-01-02 2000-01-01 2000-01-02       <NA>       <NA>
5      1 2000-01-01 2000-01-01 2000-01-02       <NA>       <NA>
6      1 2000-01-01 2000-01-01 2000-01-02       <NA>       <NA>
7      2 2000-01-03 2000-01-03 2000-01-04 2000-01-05       <NA>
8      2 2000-01-04 2000-01-03 2000-01-04 2000-01-05       <NA>
9      2 2000-01-05 2000-01-03 2000-01-04 2000-01-05       <NA>
10     2 2000-01-03 2000-01-03 2000-01-04 2000-01-05       <NA>
11     2 2000-01-04 2000-01-03 2000-01-04 2000-01-05       <NA>
12     2 2000-01-05 2000-01-03 2000-01-04 2000-01-05       <NA>
13     3 2000-01-06 2000-01-06 2000-01-02 2000-01-05 2000-01-03
14     3 2000-01-06 2000-01-06 2000-01-02 2000-01-05 2000-01-03
15     3 2000-01-02 2000-01-06 2000-01-02 2000-01-05 2000-01-03
16     3 2000-01-05 2000-01-06 2000-01-02 2000-01-05 2000-01-03
17     3 2000-01-02 2000-01-06 2000-01-02 2000-01-05 2000-01-03
18     3 2000-01-03 2000-01-06 2000-01-02 2000-01-05 2000-01-03



df所以我创建了
date\u a

date_a <- c("2000-01-01", "2000-01-02", "2000-01-03", "2000-01-04")
date_a <- data.frame(want = c("want_1", "want_2", "want_3", "want_4"),date_a = as.Date(date_a))

crossing(df,date_a) %>% 
mutate(flg = as.numeric(date < date_a)) %>% 
select(-date_a) %>% 
distinct() %>% 
spread(want,flg)
date\u a%
选择(-date_a)%>%
不同的()%>%
蔓延(匮乏,flg)

现在数据的缺点是有多余的行,而
distinct
功能将消除原始数据中的重复行

另一个时间变量/数据集是什么样子的?我有一个想法,但这取决于您想要进行比较的方式。实际上,这只是另一个日期变量。'“时间”可能不是最好的描述,我只是不想把人们与上面的单独变量和日期变量混淆。另一个日期(我们称之为date_a)是连续的几天(即,一行是2000-01-01,下一行是2000-01-02,等等)。我想标记want_1 want_2等中的任何单元格小于date_a中的单元格的行