R Language
Изменить форму tidyr
Поиск…
Вступление
tidyr имеет два инструмента для переформатирования данных: gather
(широкий и длинный) и spread
(длинный до широкого).
См. Раздел Изменение данных для других параметров.
Переформатировать из длинного в широкий формат с помощью spread ()
library(tidyr)
## example data
set.seed(123)
df <- data.frame(
name = rep(c("firstName", "secondName"), each=4),
numbers = rep(1:4, 2),
value = rnorm(8)
)
df
# name numbers value
# 1 firstName 1 -0.56047565
# 2 firstName 2 -0.23017749
# 3 firstName 3 1.55870831
# 4 firstName 4 0.07050839
# 5 secondName 1 0.12928774
# 6 secondName 2 1.71506499
# 7 secondName 3 0.46091621
# 8 secondName 4 -1.26506123
Мы можем «разнести» столбец «числа» в отдельные столбцы:
spread(data = df,
key = numbers,
value = value)
# name 1 2 3 4
# 1 firstName -0.5604756 -0.2301775 1.5587083 0.07050839
# 2 secondName 0.1292877 1.7150650 0.4609162 -1.26506123
Или распространите столбец «имя» на отдельные столбцы:
spread(data = df,
key = name,
value = value)
# numbers firstName secondName
# 1 1 -0.56047565 0.1292877
# 2 2 -0.23017749 1.7150650
# 3 3 1.55870831 0.4609162
# 4 4 0.07050839 -1.2650612
Измените форму с широким и длинным форматом с помощью команды gather ()
library(tidyr)
## example data
df <- read.table(text =" numbers firstName secondName
1 1 1.5862639 0.4087477
2 2 0.1499581 0.9963923
3 3 0.4117353 0.3740009
4 4 -0.4926862 0.4437916", header = T)
df
# numbers firstName secondName
# 1 1 1.5862639 0.4087477
# 2 2 0.1499581 0.9963923
# 3 3 0.4117353 0.3740009
# 4 4 -0.4926862 0.4437916
Мы можем собрать столбцы вместе, используя «числа» в качестве столбца ключа:
gather(data = df,
key = numbers,
value = myValue)
# numbers numbers myValue
# 1 1 firstName 1.5862639
# 2 2 firstName 0.1499581
# 3 3 firstName 0.4117353
# 4 4 firstName -0.4926862
# 5 1 secondName 0.4087477
# 6 2 secondName 0.9963923
# 7 3 secondName 0.3740009
# 8 4 secondName 0.4437916
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow