Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将mutate_at与in运算符%in%一起使用_R_Dplyr_Mutate - Fatal编程技术网

R 将mutate_at与in运算符%in%一起使用

R 将mutate_at与in运算符%in%一起使用,r,dplyr,mutate,R,Dplyr,Mutate,我有一个数据框,里面有几个变量来反转代码。我有一个单独的向量,它有所有的变量来反转代码。我想使用mutate_at()或其他整洁的方式,在一行代码中对它们进行反向编码。这是要反转的数据集和项目向量 library(tidyverse) mock_data <- tibble(id = 1:5, item_1 = c(1, 5, 3, 5, 5), item_2 = c(4, 4, 4, 1, 1), item_3 = c(5, 5, 5, 5, 1

我有一个数据框,里面有几个变量来反转代码。我有一个单独的向量,它有所有的变量来反转代码。我想使用mutate_at()或其他整洁的方式,在一行代码中对它们进行反向编码。这是要反转的数据集和项目向量

library(tidyverse)
mock_data <- tibble(id = 1:5,
       item_1 = c(1, 5, 3, 5, 5),
       item_2 = c(4, 4, 4, 1, 1),
       item_3 = c(5, 5, 5, 5, 1))

reverse <- c("item_2", "item_3")

任何帮助都将不胜感激

您可以将
反向
直接提供给
处的mutate\u,无需
变量(.%反向)
。我将把反转简化为6减去当前值

mock_data %>% mutate_at(reverse, ~6 - .)
# # A tibble: 5 x 4
#      id item_1 item_2 item_3
#   <int>  <dbl>  <dbl>  <dbl>
# 1     1      1      2      1
# 2     2      5      2      1
# 3     3      3      2      1
# 4     4      5      5      1
# 5     5      5      5      5
mock_data%>%mutate_at(相反,~6-)
##A tibble:5 x 4
#id项目1项目2项目3
#         
# 1     1      1      2      1
# 2     2      5      2      1
# 3     3      3      2      1
# 4     4      5      5      1
# 5     5      5      5      5

如果
reverse
可能包含不在
mock\u data
中的列,并且您想跳过这些列,请使用
mutate\u at(vars(一个(反向)),…)

您可以将
reverse
直接提供给
mutate\u at
,而不需要
vars(.%in%reverse)
。我将把反转简化为6减去当前值

mock_data %>% mutate_at(reverse, ~6 - .)
# # A tibble: 5 x 4
#      id item_1 item_2 item_3
#   <int>  <dbl>  <dbl>  <dbl>
# 1     1      1      2      1
# 2     2      5      2      1
# 3     3      3      2      1
# 4     4      5      5      1
# 5     5      5      5      5
mock_data%>%mutate_at(相反,~6-)
##A tibble:5 x 4
#id项目1项目2项目3
#         
# 1     1      1      2      1
# 2     2      5      2      1
# 3     3      3      2      1
# 4     4      5      5      1
# 5     5      5      5      5
如果
reverse
可能包含不在
mock_data
中的列,并且您想跳过这些列,请使用
mutate_at(vars(一个(反向)),…)

mock_data %>% mutate_at(reverse, ~6 - .)
# # A tibble: 5 x 4
#      id item_1 item_2 item_3
#   <int>  <dbl>  <dbl>  <dbl>
# 1     1      1      2      1
# 2     2      5      2      1
# 3     3      3      2      1
# 4     4      5      5      1
# 5     5      5      5      5