从 R 中的 data.frame 创建一个命名的数字列表

问题描述 投票:0回答:1

我想从我的

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)
     )
r dataframe list function dplyr
1个回答
0
投票
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
© www.soinside.com 2019 - 2024. All rights reserved.