У меня проблемы с очисткой набора данных в R. У меня есть набор данных с тремя переменными (имя, день, данные). Третья переменная фактически содержит все мои данные, но ее необходимо проанализировать. Мне нужно разделить этот столбец на несколько столбцов на основе значения в столбце. Например, в следующей базе данных:
x <- data.frame("name" = c("John","John","John","John","John","Sarah","Sarah","Sarah"), "Day" = c(1,1,1,1,1,2,2,2), "Data" = c("Map 28", 2,3,"Transfer","Time","Map 18",2,3))
, которая выглядит следующим образом:
name Day Data
1 John 1 Map 28
2 John 1 2
3 John 1 3
4 John 1 Transfer
5 John 1 Time
6 Sarah 2 Map 18
7 Sarah 2 2
8 Sarah 2 3
Мне нужно просмотреть столбец «данные» и найти в любое время слово «карта»использовать, а затем преобразовать все данные в этом столбце. Вот так:
name Day Data Val1 Val2 Val3 Val4
1 John 1 Map 28 2 3 Transfer Time
2 Sarah 2 Map 18 2 3 <NA> <NA>
Любая помощь с этим будет принята с благодарностью!
[РЕДАКТИРОВАТЬ]
Извините, я думаю, я упростил мой пример ... проблемав том, что каждый человек в каждый день будет иметь несколько значений «Карта», которые должны быть найдены. Так что это выглядит примерно так:
x <- data.frame("name" = c("John","John","John","John","John","John","John","John","John","John","John","John","Sarah","Sarah","Sarah","Sarah","Sarah","Sarah"),
"Day" = c(1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2),
"Data" = c("Map 28", 2,3,"Transfer","Time","Map 15",2,3,"Text","Map3",2,4,"Map 18",2,3,"Map 22",2,3))
name Day Data
1 John 1 Map 28
2 John 1 2
3 John 1 3
4 John 1 Transfer
5 John 1 Time
6 John 1 Map 15
7 John 1 2
8 John 1 3
9 John 1 Text
10 John 1 Map3
11 John 1 2
12 John 1 4
13 Sarah 2 Map 18
14 Sarah 2 2
15 Sarah 2 3
16 Sarah 2 Map 22
17 Sarah 2 2
18 Sarah 2 3
и тогда конечный результат будет ...
y <- data.frame("name" = c("John","John","John","Sarah", "Sarah"),
"Day" =c(1,1,1,2,2),
"Data"= c("Map 28","Map 15","Map 3","Map 18","Map 22"),
"Val1" =c(2,2,2,2,2),
"Val2"=c(3,3,4,3,3),
"Val3"=c("Transfer","Text",NA,NA,NA),
"Val4"=c("Time",NA,NA,NA,NA))
name Day Data Val1 Val2 Val3 Val4
1 John 1 Map 28 2 3 Transfer Time
2 John 1 Map 15 2 3 Text <NA>
3 John 1 Map 3 2 4 <NA> <NA>
4 Sarah 2 Map 18 2 3 <NA> <NA>
5 Sarah 2 Map 22 2 3 <NA> <NA>