【发布时间】:2022-11-08 00:33:00
【问题描述】:
我想重新编码我的数据框中的某些项目,那些包含偶数(N2、N4、N6、E2 等)的项目
对于这些选定列的每个值,我想应用abs(x-6)(请参阅我的函数)。然后我需要另外 2 列,其中包含同一类别的项目的平均值:每行的均值(N)和均值(E)。
示例代码:
df1 <- tibble(id = 1:5, N1 = c(4,3,2,5,4), N2 = c(1,1,3,2,5), N3 = c(5,5,2,4,3), N4 = c(4,2,2,2,1), N5 = c(1,1,4,2,3), N6 = c(5,2,4,3,1),E1 = c(1,2,3,1,1), E2 = c(5,2,3,1,1), E3 = c(2,2,1,3,1), E4 = c(1,1,1,3,2), E5 = c(2,3,1,4,4), E6 = c(3,2,3,3,1))
我的功能:
recode_items <- function(reverse_items) {
items <- abs(reverse_items - 6)
return(items)
}
我的代码:
recoded_df1 <- df1 |>
group_by(ends_with(c("2","4","6"))) |>
group_modify(~ recode_items(.x)) |>
ungroup() |>
mutate(id = id,
N = mean(N1:N6),
E = mean(E1:E6))
我的代码不起作用,我收到此行的错误消息:group_by(ends_with(c("2","4","6")))。我尝试了许多变体,包括 filter()、select()、select_at() 等。
谢谢你的帮助!
【问题讨论】:
标签: r