简体   繁体   English

根据 r 中的固定行顺序向数据框添加分类变量

[英]add a categorical variable to data frame based on fixed rows order in r

I have a data frame like this:我有一个这样的数据框:

Q1 <- c("A",NA,"A",NA,"NA","C","D","A","B", NA) 
Q2 <- c("D",NA,"D","C",NA,NA,"A","A","A","A")
Q3 <- c("B","B","C","A",NA,"A","B","D","E",NA)
Q4 <- c("B",NA,"C","C","C","C","D","B",NA,"A")
Q5 <- c("A",NA,"D",NA,NA,"C",NA,"B","B", NA)
Q6 <- c("D",NA,"D","C",NA,NA,"A","A","A","A")
mydf <- data.frame(Q1,Q2,Q3,Q4,Q5,Q6)
mydf

What I want to do is add a new column "subject" to my dataset and assign every 2 rows a category of a subject as below.我想要做的是向我的数据集添加一个新列“主题”,并为每 2 行分配一个主题类别,如下所示。 I know adding a new column is done with mutate but I couldn't find how to tell R to do that on a fixed rows interval.我知道添加新列是通过 mutate 完成的,但我找不到如何告诉 R 在固定的行间隔内执行此操作。

    Q1   Q2   Q3   Q4   Q5   Q6    Subject
1     A    D    B    B    A    D   Language
2  <NA> <NA>    B <NA> <NA> <NA>   Language
3     A    D    C    C    D    D   Science
4  <NA>    C    A    C <NA>    C   Science
5    NA <NA> <NA>    C <NA> <NA>   Math 
6     C <NA>    A    C    C <NA>   Math
7     D    A    B    D <NA>    A   Art
8     A    A    D    B    B    A   Art
9     B    A    E <NA>    B    A   History
10 <NA>    A <NA>    A <NA>    A   History

How about this:这个怎么样:

library(dplyr)

Q1 <- c("A",NA,"A",NA,"NA","C","D","A","B", NA) 
Q2 <- c("D",NA,"D","C",NA,NA,"A","A","A","A")
Q3 <- c("B","B","C","A",NA,"A","B","D","E",NA)
Q4 <- c("B",NA,"C","C","C","C","D","B",NA,"A")
Q5 <- c("A",NA,"D",NA,NA,"C",NA,"B","B", NA)
Q6 <- c("D",NA,"D","C",NA,NA,"A","A","A","A")
mydf <- data.frame(Q1,Q2,Q3,Q4,Q5,Q6)
mydf
#>      Q1   Q2   Q3   Q4   Q5   Q6
#> 1     A    D    B    B    A    D
#> 2  <NA> <NA>    B <NA> <NA> <NA>
#> 3     A    D    C    C    D    D
#> 4  <NA>    C    A    C <NA>    C
#> 5    NA <NA> <NA>    C <NA> <NA>
#> 6     C <NA>    A    C    C <NA>
#> 7     D    A    B    D <NA>    A
#> 8     A    A    D    B    B    A
#> 9     B    A    E <NA>    B    A
#> 10 <NA>    A <NA>    A <NA>    A

mydf %>% 
  mutate(Subject = rep(c("Language", "Science", 
                         "Math", "art", "History"), 
                       each=2))
#>      Q1   Q2   Q3   Q4   Q5   Q6  Subject
#> 1     A    D    B    B    A    D Language
#> 2  <NA> <NA>    B <NA> <NA> <NA> Language
#> 3     A    D    C    C    D    D  Science
#> 4  <NA>    C    A    C <NA>    C  Science
#> 5    NA <NA> <NA>    C <NA> <NA>     Math
#> 6     C <NA>    A    C    C <NA>     Math
#> 7     D    A    B    D <NA>    A      art
#> 8     A    A    D    B    B    A      art
#> 9     B    A    E <NA>    B    A  History
#> 10 <NA>    A <NA>    A <NA>    A  History

Created on 2022-11-17 by the reprex package (v2.0.1)reprex package (v2.0.1) 创建于 2022-11-17

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 根据 r 数据框中另一个分类变量的值重新编码分类变量 - Recoding categorical variable based on the value of another categorical variable in r data frame R:在具有类别变量的数据帧上使用ddply - R: use of ddply on a data frame with categorical variable r-根据一个固定的文本将单列数据帧转换为带有行的数据帧 - r - convert single column data frame to data frame with rows based on one fixed text 使用 %in% 对 r 中的数据(基于分类变量)进行子集化 - subset the data (based on categorical variable) in r, using %in% 使用R根据共同变量组合数据框中的行 - Using R to combine rows in a data frame based on a common variable R中基于先前变量值将行追加到数据框的函数 - Function for Appending Rows to Data Frame Based on Previous Variable Values in R R:如何根据数据框的值添加行? - R: How can I add rows based on values of a data frame? 根据不匹配的条目 R 向数据框添加行和值 - add rows and values to data frame based on unmatched entries R 根据分类变量顺序计算R数据帧值的变化 - Sequentially calculate changes in R data frame value based on categorical variables 基于数据框 R 子集的一列中“分类值”的百分比 - Percentages of "categorical values" in one column based on subset of data frame R
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM