客观的
给定数据,根据对象中指定的协调规则计算
ds
一个新变量ds$h1
。ds$raw1
ds$raw2
hrule
可重现的示例包含 10 个人对 2 个度量的响应,raw1
并且raw2
:
>ds
id raw1 raw2
1 1 1 1
2 2 1 0
3 3 0 1
4 4 0 0
5 5 NA 1
6 6 NA 0
7 7 1 NA
8 8 0 NA
9 9 NA NA
10 10 1 1
根据某种规则(定性开发),这两个变量需要转换为一个单一的、协调的变量。协调变换的规则被编码在对象中hrule
:
>hrule
raw1 raw2 h1
1 0 0 0
2 0 1 1
3 0 NA 0
4 1 0 1
5 1 1 1
6 1 NA 1
7 NA 0 0
8 NA 1 1
9 NA NA NA
因此,应该将第 1 行的规则解读为:
如果被访者提供了
0
on的值和onraw1
的值,那么 的值应该是。0
raw2
h1
0
功能目标
开发一个函数,将
ds
、hrule
、 变量名称传递给字符向量 (c("raw1","raw2")
) 和协调变量的名称 ("h1"
) 并输出一个新的协调变量 (ds$h1
)。
入门代码
(ds <- data.frame("id" = 1:10,
"raw1" = c(1,1,0,0,NA,NA,1 ,0 ,NA,1),
"raw2" = c(1,0,1,0,1 ,0 ,NA,NA,NA,1)))
(response_profile <- ds %>% dplyr::group_by(raw1, raw2) %>% dplyr::summarize(count=n()))
(hrule <- cbind(response_profile, "h1" = c(0,1,0,1,1,1,0,1,NA)))
new_function <- function(ds, hrule,
variable_names, # variable_names = c("raw1,"raw2"), the number will vary
harmony_name # harmony_name = "h1", there might be "h2"
){
}
提前感谢您的想法!