每个ID都有性别和年龄以及功能数据。我想知道应该如何获取一个可以分析的数据集。
------------------------
original data form is:
ID gender age fun
1 M 10 2.5
1 M 10 2.4
1 M 10 3.3
1 M 10 5.5
1 M 10 2.2
2 F 11 4.4
2 F 11 3.3
2 F 11 2.2
2 F 11 1.1
2 F 11 3.3
I want a from of data like:
ID gender age fun
1 M 10 2.5 2.4 3.3 5.5 2.2
2 F 11 4.4 3.3 2.2 1.1 3.3
------------------------
预先感谢您的帮助。
答案 0 :(得分:2)
使用tidyverse
的解决方案。
library(tidyverse)
dat2 <- dat %>%
group_by(ID) %>%
mutate(N = 1:n()) %>%
spread(N, fun) %>%
ungroup()
dat2
# # A tibble: 2 x 8
# ID gender age `1` `2` `3` `4` `5`
# <int> <chr> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
# 1 1 M 10 2.5 2.4 3.3 5.5 2.2
# 2 2 F 11 4.4 3.3 2.2 1.1 3.3
数据
dat <- read.table(text = "ID gender age fun
1 M 10 2.5
1 M 10 2.4
1 M 10 3.3
1 M 10 5.5
1 M 10 2.2
2 F 11 4.4
2 F 11 3.3
2 F 11 2.2
2 F 11 1.1
2 F 11 3.3",
header = TRUE, stringsAsFactors = FALSE)