r - 创建列出不同观察结果的列

标签 r categorical-data

我有一个观察数据框架,如下所示(显示每个学期开设的大学类(class)的类(class)编号)。列很长,长短不一

  spring   summer   fall
   4a       5b       5c
   4a       9c       11b
   7c       5b       8a 
   ...      ...      ...

我想重新格式化它,使它看起来像这样。首先,我想创建一个列“Course_Names”,它显示可能的不同类(class)的所有名称。然后,我想统计每个学期开设的每门类(class)的节数。

   Course_Names   spring   summer   fall
   4a             2        0        0
   5b             0        2        0
   5c             0        0        1
   7c             1        0        0
   8a             1        0        1
   9c             0        1        0
   11b            0        0        1        

任何建议或相关帖子的链接将不胜感激!谢谢!

最佳答案

base R 中,一个选项是将 data.frame 堆叠 成两列数据集并使用 table

table(stack(df1))
#    ind
#values spring summer fall
#   11b      0      0    1
#   4a       2      0    0
#   5b       0      2    0
#   5c       0      0    1
#   7c       1      0    0
#   8a       0      0    1
#   9c       0      1    0

或者在 tidyverse 中,我们可以使用 pivot_longer reshape 为“长”格式,获取 count 并 reshape 为“宽”

library(dplyr)
library(tidyr)
df1 %>%
    pivot_longer(everything()) %>%
    count(name, Course_Names = value) %>%
    pivot_wider(names_from = name, values_from = n, values_fill = list(n = 0))
# A tibble: 7 x 4
#  Course_Names  fall spring summer
#  <chr>        <int>  <int>  <int>
#1 11b              1      0      0
#2 5c               1      0      0
#3 8a               1      0      0
#4 4a               0      2      0
#5 7c               0      1      0
#6 5b               0      0      2
#7 9c               0      0      1

数据

df1 <- structure(list(spring = c("4a", "4a", "7c"), summer = c("5b", 
"9c", "5b"), fall = c("5c", "11b", "8a")), class = "data.frame", row.names = c(NA, 
-3L))

关于r - 创建列出不同观察结果的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59569733/

相关文章:

python - 将 Series 转换为 DataFrame

r - 使用 dplyr 对每一行(按行)中的特定字符串(字符串)进行计数或求和

r - 从文本文件读取的向量与控制台中生成的相同向量不同

r编程-检查向量中的每个值是否是数字

r - 分隔符为空格且缺失值为空时如何读取?

使用密度绘制 3d 中的 R- xy 散点图

r - 结合低频计数

r - 使用mRMRe进行特征选择: my categorical target variable is sometimes selected

r - x 轴上的 geom_vline 垂直线与分类数据 : ggplot2

r - 如何确保分区具有来自因子每个级别的代表性观察?