Как использовать набор в R вместо объединения - PullRequest
0 голосов
/ 05 октября 2019

Я пытаюсь использовать функцию сбора вместо объединения, чтобы получить вывод. Возможно ли это сделать?

Это мои данные:

 Description             Temp
     <fctr>                <dbl>

1   location1:48:2018-10-23 -0.9381736      
2   location2:83:2018-01-05 1.1714643       
3   location3:73:2018-11-05 -0.7064954      
4   location4:27:2018-07-26 0.4420571       
5   location5:33:2018-02-03 0.9060360       
6   location6:88:2018-04-27 1.9407284   

Я использовал для разделения данных с помощью следующей команды:

library(tidyr)
sepData <- separate(data, Description, c("Location",  "ID", "Date"), sep = ":")

Location ID   Date   Temp
<chr>   <chr> <chr>  <dbl>
1   location1   48  2018-10-23  -0.9381736
2   location2   83  2018-01-05  1.1714643
3   location3   73  2018-11-05  -0.7064954
4   location4   27  2018-07-26  0.4420571
5   location5   33  2018-02-03  0.9060360
6   location6   88  2018-04-27  1.9407284

Теперь я хочу получить данные в их первоначальном виде, используя сбор. Пожалуйста, помогите, если это возможно.

Ответы [ 2 ]

1 голос
/ 05 октября 2019

Если мы проверим ?separate, у него также есть аргумент remove, который по умолчанию TRUE. Изменение этого значения на FALSE также приведет к возврату исходного столбца без удаления его из набора данных

separate(data, Description, c("Location",  "ID", "Date"), sep = ":", remove = FALSE)
#         Description  Location ID       Date       Temp
#1 location1:48:2018-10-23 location1 48 2018-10-23 -0.9381736
#2 location2:83:2018-01-05 location2 83 2018-01-05  1.1714643
#3 location3:73:2018-11-05 location3 73 2018-11-05 -0.7064954
#4 location4:27:2018-07-26 location4 27 2018-07-26  0.4420571
#5 location5:33:2018-02-03 location5 33 2018-02-03  0.9060360
#6 location6:88:2018-04-27 location6 88 2018-04-27  1.9407284

data

data <- structure(list(Description = c("location1:48:2018-10-23", 
 "location2:83:2018-01-05", 
"location3:73:2018-11-05", "location4:27:2018-07-26", "location5:33:2018-02-03", 
"location6:88:2018-04-27"), Temp = c(-0.9381736, 1.1714643, -0.7064954, 
0.4420571, 0.906036, 1.9407284)), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6"))
0 голосов
/ 05 октября 2019

Вы можете использовать пасту

togetherDate <- sepData %>% 
 mutate(Description = as.factor(paste(Location, ID, Date, sep = ':'))) %>% 
 select(-Location, -ID, -Date) %>% select(Description, Temp) 

Должен вернуть вам тот же data.frame, что и раньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...