r - 我将如何创建这个数据框?我需要使用嵌套 for 循环吗?

标签 r for-loop nested

我正在尝试创建一个包含两列(ID、条件)的数据框。每个ID都与8个条件相关联。 ID 从 s009 开始,范围到 s050。对于每个 ID,我都会有相同的条件。我提供了一组我要创建的示例以供引用。我将非常感谢任何对此的帮助。提前致谢!

ID     Condition
s009    Baseline
s009    Meditation
s009    Practice
s009    Creativity
s009    Preblock 1
s009    Postblock 1
s009    Preblock 2
s009    Postblock 2
s010    Baseline
s010    Mediation
s010    Practice 
s010    Creativity
s010    Preblock 1
s010    Postblock 1
s010    Preblock 2
s010    Postblock 2
s011    Baseline
...

最佳答案

一个选项是来自base Rexpand.grid(不使用任何外部包)

df1 <- expand.grid(ID = v1, Condition = v2)

或者使用data.table

library(data.table)
CJ(ID = v1, Condition = v2)
#    ID   Condition
#  1: s009    Baseline
#  2: s009  Creativity
#  3: s009  Meditation
#  4: s009 Postblock 1
#  5: s009 Postblock 2
# ---                 
#332: s050 Postblock 1
#333: s050 Postblock 2
#334: s050    Practice
#335: s050  Preblock 1
#336: s050  Preblock 2

或者使用tidyverse

library(tidyverse)
tibble(ID = v1) %>% 
    expand(ID, Condition = v2)
# A tibble: 336 x 2
#   ID    Condition  
#   <chr> <chr>      
# 1 s009  Baseline   
# 2 s009  Creativity 
# 3 s009  Meditation 
# 4 s009  Postblock 1
# 5 s009  Postblock 2
# 6 s009  Practice   
# 7 s009  Preblock 1 
# 8 s009  Preblock 2 
# 9 s010  Baseline   
#10 s010  Creativity 
# … with 326 more rows

哪里

v1 <- sprintf("s%03d", 9:50)
v2 <- c("Baseline", "Meditation", "Practice", "Creativity",
    "Preblock 1", "Postblock 1", "Preblock 2", "Postblock 2")

关于r - 我将如何创建这个数据框?我需要使用嵌套 for 循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55944623/

相关文章:

java - 为什么我的变量在循环中没有被改变?

c++ - C++用于使用逗号运算符的多个控制语句

javascript - Canvas 问题

html - 第二个框架集没有出现在 IE8 中

r - 由于 LaTeX,.Rmd 编​​译失败

c - R包: breakpoint setup for C function with gdb in Debian (Testing)

list - Scheme - 映射函数,用于将函数应用于嵌套列表中的元素

html - 将鼠标悬停在 div 内的 <button> 上不工作,在外部工作

r - 从数据框列表中按顺序提取每一列

arrays - 使用 R 将多个文件加载到矩阵中