r - 有什么办法可以重新排列此类数据吗?

标签 r dataframe structure

每个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

------------------------

预先感谢您的帮助。

最佳答案

使用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)

关于r - 有什么办法可以重新排列此类数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54527586/

相关文章:

r - 是否可以将字符串输出存储在 R 对象中?

python - Pyspark - 如何分别初始化常见的 DataFrameReader 选项?

r - 如何按组选择具有最小值并在R中包含NA的行

c - 结构中的无符号数据类型

javascript - 使用 Backbone.js 和 Express.js 构建应用程序

r - 使用 fread 加载数据表后无法识别列名

r - 如何安全地使用coxph和子集或权重?

r - 为什么中位数跳闸 data.table (整数与 double )?

python - 如何使用其他数据框(PySpark)创建数据框?

python - Python 中的 Matlab 类型结构