Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.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_Date_Datetime_Data Management - Fatal编程技术网

R 在数据框内合并日期向量

R 在数据框内合并日期向量,r,date,datetime,data-management,R,Date,Datetime,Data Management,我有一个数据结构df,有一些日期向量,一零五,像这样 df <- structure(list(one.date = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, "2012-09-23", "2012-09-23", NA, NA, NA, NA, NA, NA, NA, NA, NA), two.date = c(NA, "2012-11-13", NA, "2012-11-19", NA, NA, NA, NA, NA, NA, NA, NA, NA,

我有一个数据结构
df
,有一些日期向量,一零五,像这样

df <- structure(list(one.date = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, "2012-09-23", "2012-09-23", NA, NA, NA, NA, NA, NA, NA, NA, NA), two.date = c(NA, "2012-11-13", NA, "2012-11-19", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "2012-09-24", NA, NA, NA), three.date = c(NA, NA, "2012-11-19", NA, NA, NA, NA, NA, "2012-09-22", NA, NA, NA, NA, NA, NA, NA, NA, "2012-09-24", NA, NA), four.date = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "2012-09-02", "2012-09-10","2012-09-23", NA, NA, NA, NA, NA, NA), five.date = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "2012-09-24", "2014-09-09", NA, NA, NA, NA)), .Names = c("one.date", "two.date", "three.date", "four.date", "five.date"), row.names = c(NA, 20L), class = "data.frame")
# > df
     one.date   two.date three.date  four.date  five.date
1        <NA>       <NA>       <NA>       <NA>       <NA>
2        <NA> 2012-11-13       <NA>       <NA>       <NA>
3        <NA>       <NA> 2012-11-19       <NA>       <NA>
4        <NA> 2012-11-19       <NA>       <NA>       <NA>
5        <NA>       <NA>       <NA>       <NA>       <NA>
6        <NA>       <NA>       <NA>       <NA>       <NA>
7        <NA>       <NA>       <NA>       <NA>       <NA>
8        <NA>       <NA>       <NA>       <NA>       <NA>
9        <NA>       <NA> 2012-09-22       <NA>       <NA>
10 2012-09-23       <NA>       <NA>       <NA>       <NA>
11 2012-09-23       <NA>       <NA>       <NA>       <NA>
12       <NA>       <NA>       <NA> 2012-09-02       <NA>
13       <NA>       <NA>       <NA> 2012-09-10       <NA>
14       <NA>       <NA>       <NA> 2012-09-23       <NA>
15       <NA>       <NA>       <NA>       <NA> 2012-09-24
16       <NA>       <NA>       <NA>       <NA> 2014-09-09
17       <NA> 2012-09-24       <NA>       <NA>       <NA>
18       <NA>       <NA> 2012-09-24       <NA>       <NA>
19       <NA>       <NA>       <NA>       <NA>       <NA>
20       <NA>       <NA>       <NA>       <NA>       <NA>
df
日期二日期三日期四日期五日期
1.
2         2012-11-13                     
3                2012-11-19              
4         2012-11-19                     
5.
6.
7.
8.
9                2012-09-22              
10 2012-09-23                            
11 2012-09-23                            
12                      2012-09-02       
13                      2012-09-10       
14                      2012-09-23       
15                             2012-09-24
16                             2014-09-09
17        2012-09-24                     
18               2012-09-24              
19
20
现在,我想把它们合并成一个向量。像这样,

            date  one.date   two.date three.date  four.date  five.date
  1        <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
  2  2012-11-13       <NA> 2012-11-13       <NA>       <NA>       <NA>
  3  2012-11-19       <NA>       <NA> 2012-11-19       <NA>       <NA>
  4  2012-11-19       <NA> 2012-11-19       <NA>       <NA>       <NA>
  5        <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
  6        <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
  7        <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
  8        <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
  9  2012-09-22       <NA>       <NA> 2012-09-22       <NA>       <NA>
  10 2012-09-23 2012-09-23       <NA>       <NA>       <NA>       <NA>
  11 2012-09-23 2012-09-23       <NA>       <NA>       <NA>       <NA>
  12 2012-09-02       <NA>       <NA>       <NA> 2012-09-02       <NA>
  13 2012-09-10       <NA>       <NA>       <NA> 2012-09-10       <NA>
  14 2012-09-23       <NA>       <NA>       <NA> 2012-09-23       <NA>
  15 2012-09-24       <NA>       <NA>       <NA>       <NA> 2012-09-24
  16 2014-09-09       <NA>       <NA>       <NA>       <NA> 2014-09-09
  17 2012-09-24       <NA> 2012-09-24       <NA>       <NA>       <NA>
  18 2012-09-24       <NA>       <NA> 2012-09-24       <NA>       <NA>
  19       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
  20       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
日期一。日期二。日期三。日期四。日期五。日期
1.
2  2012-11-13        2012-11-13                     
3  2012-11-19               2012-11-19              
4  2012-11-19        2012-11-19                     
5.
6.
7.
8.
9  2012-09-22               2012-09-22              
10 2012-09-23 2012-09-23                            
11 2012-09-23 2012-09-23                            
12 2012-09-02                      2012-09-02       
13 2012-09-10                      2012-09-10       
14 2012-09-23                      2012-09-23       
15 2012-09-24                             2012-09-24
16 2014-09-09                             2014-09-09
17 2012-09-24        2012-09-24                     
18 2012-09-24               2012-09-24              
19
20

任何帮助都将不胜感激。

我假设每行最多有一个非
NA
条目:

as.vector(apply(df,1,function(x) ifelse(all(is.na(x)),NA,x[!is.na(x)])))
 [1] NA           "2012-11-13" "2012-11-19" "2012-11-19" NA          
 [6] NA           NA           NA           "2012-09-22" "2012-09-23"
[11] "2012-09-23" "2012-09-02" "2012-09-10" "2012-09-23" "2012-09-24"
[16] "2014-09-09" "2012-09-24" "2012-09-24" NA           NA
或者将其作为原始数据中的一个因素:

cbind(list(date=as.factor(apply(df,1,function(x) ifelse(all(is.na(x)),NA,x[!is.na(x)])))),df)
         date   one.date   two.date three.date  four.date  five.date
1        <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
2  2012-11-13       <NA> 2012-11-13       <NA>       <NA>       <NA>
3  2012-11-19       <NA>       <NA> 2012-11-19       <NA>       <NA>
4  2012-11-19       <NA> 2012-11-19       <NA>       <NA>       <NA>
5        <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
6        <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
7        <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
8        <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
9  2012-09-22       <NA>       <NA> 2012-09-22       <NA>       <NA>
10 2012-09-23 2012-09-23       <NA>       <NA>       <NA>       <NA>
11 2012-09-23 2012-09-23       <NA>       <NA>       <NA>       <NA>
12 2012-09-02       <NA>       <NA>       <NA> 2012-09-02       <NA>
13 2012-09-10       <NA>       <NA>       <NA> 2012-09-10       <NA>
14 2012-09-23       <NA>       <NA>       <NA> 2012-09-23       <NA>
15 2012-09-24       <NA>       <NA>       <NA>       <NA> 2012-09-24
16 2014-09-09       <NA>       <NA>       <NA>       <NA> 2014-09-09
17 2012-09-24       <NA> 2012-09-24       <NA>       <NA>       <NA>
18 2012-09-24       <NA>       <NA> 2012-09-24       <NA>       <NA>
19       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
20       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
cbind(list(date=as.factor)(应用(df,1,函数(x)ifelse(all(is.na(x)),na,x[!is.na(x)])),df)
日期1.日期2.日期3.日期4.日期5.日期
1.
2  2012-11-13        2012-11-13                     
3  2012-11-19               2012-11-19              
4  2012-11-19        2012-11-19                     
5.
6.
7.
8.
9  2012-09-22               2012-09-22              
10 2012-09-23 2012-09-23                            
11 2012-09-23 2012-09-23                            
12 2012-09-02                      2012-09-02       
13 2012-09-10                      2012-09-10       
14 2012-09-23                      2012-09-23       
15 2012-09-24                             2012-09-24
16 2014-09-09                             2014-09-09
17 2012-09-24        2012-09-24                     
18 2012-09-24               2012-09-24              
19
20

我假设每行最多有一个非
NA
条目:

as.vector(apply(df,1,function(x) ifelse(all(is.na(x)),NA,x[!is.na(x)])))
 [1] NA           "2012-11-13" "2012-11-19" "2012-11-19" NA          
 [6] NA           NA           NA           "2012-09-22" "2012-09-23"
[11] "2012-09-23" "2012-09-02" "2012-09-10" "2012-09-23" "2012-09-24"
[16] "2014-09-09" "2012-09-24" "2012-09-24" NA           NA
或者将其作为原始数据中的一个因素:

cbind(list(date=as.factor(apply(df,1,function(x) ifelse(all(is.na(x)),NA,x[!is.na(x)])))),df)
         date   one.date   two.date three.date  four.date  five.date
1        <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
2  2012-11-13       <NA> 2012-11-13       <NA>       <NA>       <NA>
3  2012-11-19       <NA>       <NA> 2012-11-19       <NA>       <NA>
4  2012-11-19       <NA> 2012-11-19       <NA>       <NA>       <NA>
5        <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
6        <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
7        <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
8        <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
9  2012-09-22       <NA>       <NA> 2012-09-22       <NA>       <NA>
10 2012-09-23 2012-09-23       <NA>       <NA>       <NA>       <NA>
11 2012-09-23 2012-09-23       <NA>       <NA>       <NA>       <NA>
12 2012-09-02       <NA>       <NA>       <NA> 2012-09-02       <NA>
13 2012-09-10       <NA>       <NA>       <NA> 2012-09-10       <NA>
14 2012-09-23       <NA>       <NA>       <NA> 2012-09-23       <NA>
15 2012-09-24       <NA>       <NA>       <NA>       <NA> 2012-09-24
16 2014-09-09       <NA>       <NA>       <NA>       <NA> 2014-09-09
17 2012-09-24       <NA> 2012-09-24       <NA>       <NA>       <NA>
18 2012-09-24       <NA>       <NA> 2012-09-24       <NA>       <NA>
19       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
20       <NA>       <NA>       <NA>       <NA>       <NA>       <NA>
cbind(list(date=as.factor)(应用(df,1,函数(x)ifelse(all(is.na(x)),na,x[!is.na(x)])),df)
日期1.日期2.日期3.日期4.日期5.日期
1.
2  2012-11-13        2012-11-13                     
3  2012-11-19               2012-11-19              
4  2012-11-19        2012-11-19                     
5.
6.
7.
8.
9  2012-09-22               2012-09-22              
10 2012-09-23 2012-09-23                            
11 2012-09-23 2012-09-23                            
12 2012-09-02                      2012-09-02       
13 2012-09-10                      2012-09-10       
14 2012-09-23                      2012-09-23       
15 2012-09-24                             2012-09-24
16 2014-09-09                             2014-09-09
17 2012-09-24        2012-09-24                     
18 2012-09-24               2012-09-24              
19
20
df$onedate
df$onedate