Этого можно достичь с помощью подхода gather
- unite
- spread
df %>%
group_by(Respondent) %>%
gather(k, v, CS, Imp) %>%
unite(col, Question, k, sep = "") %>%
spread(col, v)
# Respondent LOS Type Hotel Q1CS Q1Imp Q2CS Q2Imp
#1 1 12 SML ABC Fully Applied High Optimized Critical
df <- read.table(text =
" Respondent Question CS Imp LOS Type Hotel
1 1 Q1 'Fully Applied' High 12 SML ABC
2 1 Q2 'Optimized' Critical 12 SML ABC", header = T)
Можно бросить поле DATETIME в ДАТУ как:
SELECT * FROM `calendar` WHERE CAST(startTime AS DATE) = '2010-04-29'
Это очень эффективно.
SELECT * FROM `calendar` WHERE DATE_FORMAT(startTime, "%Y-%m-%d") = '2010-04-29'"
ИЛИ
SELECT * FROM `calendar` WHERE DATE(startTime) = '2010-04-29'
SELECT * FROM `calendar` WHERE startTime like '2010-04-29%'
Вы также можете использовать операторы сравнения для дат MySQL, если хотите найти что-то после или до. Это происходит потому, что они записаны таким образом (от наибольшего значения к наименьшему с ведущими нулями), что простая сортировка строк отсортирует их правильно.