Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.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
对于满足两个标准dplyr的变量,使用mutate_at_R_Select_Dplyr_Mutate_Recode - Fatal编程技术网

对于满足两个标准dplyr的变量,使用mutate_at

对于满足两个标准dplyr的变量,使用mutate_at,r,select,dplyr,mutate,recode,R,Select,Dplyr,Mutate,Recode,我正在尝试对数据帧中的某些项进行反向评分(重新编码)。所有反向评分项目都以R结尾,每个量表都有一个唯一的开始(“hc”、“out”和“hm”)。我通常只会选择以“r”结尾的所有变量,但问题是有些量表是5点量表(“hc”和“out”),而其他量表是7点量表(“hm”) 下面是一个更大的数据集示例: library(tidyverse) data <- tibble(name = c("Mike", "Ray", "Hassan"), hc_1 = c(1, 2

我正在尝试对数据帧中的某些项进行反向评分(重新编码)。所有反向评分项目都以R结尾,每个量表都有一个唯一的开始(“hc”、“out”和“hm”)。我通常只会选择以“r”结尾的所有变量,但问题是有些量表是5点量表(“hc”和“out”),而其他量表是7点量表(“hm”)

下面是一个更大的数据集示例:

library(tidyverse)

data <- tibble(name = c("Mike", "Ray", "Hassan"),
               hc_1 = c(1, 2, 3),
               hc_2r = c(5, 5, 4),
               out_1r = c(5, 4, 2),
               out_2 = c(2, 4, 5),
               out_3r = c(2, 2, 1),
               hm_1 = c(6, 7, 7),
               hm_2r = c(7, 1, 7))
错误:
以(“r”)结束\u和以(“hc”)开始\u
必须计算列位置或名称,而不是逻辑向量

一次对这几个变量执行反向评分的干净方法是什么?再一次,数据集太大,实际上一次只能选择单个变量


谢谢

在这里使用
匹配项会更容易

library(tidyverse)
data %>%
     mutate_at(vars(matches("^hm.*r$")), ~(recode(.,
              "1=7; 2=6; 3=5; 4=4; 5=3; 6=2; 7=1")))

您需要
vars(匹配项(“^hm.*r$”)
@akrun,我从没想过,谢谢!如果你发布作为答案,我将接受作为答案。谢谢
library(tidyverse)
data %>%
     mutate_at(vars(matches("^hm.*r$")), ~(recode(.,
              "1=7; 2=6; 3=5; 4=4; 5=3; 6=2; 7=1")))