Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.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 将数据帧行中的值与引用数据帧中的列匹配,然后更改值_R - Fatal编程技术网

R 将数据帧行中的值与引用数据帧中的列匹配,然后更改值

R 将数据帧行中的值与引用数据帧中的列匹配,然后更改值,r,R,我有一个数据框架(d1),其中受访者回答了一系列问题(Q1-Q12),因此问题是列名,受访者回答是所有列中的一行,接下来的受访者回答是各列中的第2行。 另一个数据框(d2)有一个问题列,其中Q1-Q12为行,以及一个正确答案列,其中Q1-Q12为问题的正确答案 我的问题是如何将d1中的回答与d2中的正确回答进行比较,如果回答正确,则将d1中的值更改为1,如果回答错误,则将值更改为0 谢谢这里有一种方法可以使用dplyr和tidyr中的函数来解决这个问题,特别是collect和spread。 库

我有一个数据框架(d1),其中受访者回答了一系列问题(Q1-Q12),因此问题是列名,受访者回答是所有列中的一行,接下来的受访者回答是各列中的第2行。 另一个数据框(d2)有一个问题列,其中Q1-Q12为行,以及一个正确答案列,其中Q1-Q12为问题的正确答案

我的问题是如何将d1中的回答与d2中的正确回答进行比较,如果回答正确,则将d1中的值更改为1,如果回答错误,则将值更改为0


谢谢

这里有一种方法可以使用dplyr和tidyr中的函数来解决这个问题,特别是
collect
spread

库(dplyr)
图书馆(tidyr)
df1%
左联合(df2)%>%
变异(比较=ifelse(答案=correct,1,0))%>%
选择(-answer,-correct)%%>%
传播(问题、比较)
#>通过=“问题”加入
#>#A tible:4×5
#>受访者第一季度第二季度第三季度第四季度
#> *          
#> 1          1     1     1     0     1
#> 2          2     0     1     1     1
#> 3          3     1     0     1     1
#> 4          4     1     1     1     0

请提供一个小示例数据帧和预期输出。看见