数据框包含几个TIMESTAMP列。
df_Result
A B Timestamp_ALL C
1 A 1 <NA> Dog
2 A 1 2018-05-04 00:18:45 Dog
3 A 1 2018-05-04 00:19:13 Dog
4 B 2 2018-05-04 00:19:41 Cat
5 B 2 2018-05-05 00:17:00 Cat
6 B 2 2018-05-05 00:18:43 Cat
7 C 3 2018-05-06 00:18:41 Mouse
8 C 3 2018-06-05 00:00:01 Mouse
9 C 3 2018-07-31 22:09:10 Mouse
合并TIMESTAMP列的结果需要看起来像
def calculateLicense(Date bd, int yr, int mon=0){
use (groovy.time.TimeCategory) {
Date licenseDate = bd + yr.years + mon.months
println "License date:" + licenseDate.format('mm/dd/yyyy')
}
如何在R优雅&amp;有效的方式? 万分感谢任何建议和想法!
答案 0 :(得分:2)
以下是使用tidyverse
tidyr::gather
解决方案
library(tidyverse)
df %>%
gather(key, Timestamp_ALL, -A, -B, -C) %>%
select(A, B, Timestamp_ALL, C, -key) %>%
arrange(A, B)
# A B Timestamp_ALL C
#1 A 1 <NA> Dog
#2 A 1 2018-05-04 00:18:45 Dog
#3 A 1 2018-05-04 00:19:13 Dog
#4 B 2 2018-05-04 00:19:41 Cat
#5 B 2 2018-05-05 00:18:43 Cat
#6 B 2 2018-05-05 00:17:00 Cat
#7 C 3 2018-07-31 22:09:10 Mouse
#8 C 3 2018-06-05 00:00:01 Mouse
#9 C 3 2018-05-06 00:18:41 Mouse
说明:gather
将data.frame
从宽转换为长,其余只是使用select
选择相关列,并按A
排序条目,然后{{1}与B
。