我想从我的
DATA
创建一个数字命名列表,这样所有以 Variables
结尾的 baseline
都会从相应的以 Variables
结尾的 post1
中减去。
例如,第一个元素的 name 将是
"beginner_post1 - beginner_baseline"
。
例如,第一个元素的 numerics 将为
c(5,-2)
,这意味着它们位于 Row 5
和 Row 2
。
是否可以自动化此过程来实现我的
Desired_output
?
DATA <- read.table(header=TRUE,text =
"
Row Variables
1 advanced_baseline
2 beginner_baseline
3 intermediate_baseline
4 advanced_post1
5 beginner_post1
6 intermediate_post1")
Desired_output =
list("( beginner_post1 - beginner_baseline )"= c(5,-2),
"(intermediate_post1 - intermediate_baseline)"= c(-6,3),
"( advanced_post1 - advanced_baseline )"= c(4,-1)
)
library(dplyr); library(tidyr)
DATA |>
separate(Variables, c("level", "type")) |>
pivot_wider(names_from = type, values_from = Row) |>
mutate(change = post1 - baseline)
结果
# A tibble: 3 × 4
level baseline post1 change
<chr> <int> <int> <int>
1 advanced 1 4 3
2 beginner 2 5 3
3 intermediate 3 6 3