Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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_Dplyr_Tidyr_Mutate - Fatal编程技术网

使用R整理数据

使用R整理数据,r,dplyr,tidyr,mutate,R,Dplyr,Tidyr,Mutate,我在整理大型数据集时遇到问题,非常感谢您的帮助。我的数据的一个子集如下所示: > d1 # A tibble: 16 x 8 Subject RT1 RT2 item ROI `Item _Number` IA_LABEL block <dbl> <dbl> <dbl> <chr> <dbl> <dbl> <ch

我在整理大型数据集时遇到问题,非常感谢您的帮助。我的数据的一个子集如下所示:

> d1
# A tibble: 16 x 8
   Subject   RT1   RT2 item                 ROI `Item _Number` IA_LABEL  block
     <dbl> <dbl> <dbl> <chr>              <dbl>          <dbl> <chr>     <dbl>
 1       1   567   261 brilliant salesman     1              1 brilliant     3
 2       1   494    76 brilliant salesman     2              1 salesman      3
 3       1   441   211 detailed brochure      1              2 detailed      3
 4       1   544   282 detailed brochure      2              2 brochure      3
 5       1   289   153 detailed brochure      1              2 detailed      4
 6       1   141   141 detailed brochure      2              2 brochure      4
 7       1   141   141 brilliant salesman     1              1 brilliant     4
 8       1   263    90 brilliant salesman     2              1 salesman      4
 9       2   216   216 detailed brochure      1              2 detailed      3
10       2   248   248 detailed brochure      2              2 brochure      3
11       2   216   128 brilliant salesman     1              1 brilliant     3
12       2   238   140 brilliant salesman     2              1 salesman      3
13       2   212   212 detailed brochure      1              2 detailed      6
14       2   369   241 detailed brochure      2              2 brochure      6
15       2   208   208 brilliant salesman     1              1 brilliant     6
16       2   191   191 brilliant salesman     2              1 salesman      6
该数据表示读取某些单词(IA_标签)后的反应时间(RT1和RT2)。在列(IA_标签)的每一行中,只有一个单词的反应时间(RT1和RT2)。因此,IA_标签中的这些单词代表短语的第一个单词(其中ROI=1)和同一短语的第二个单词(其中ROI=2)。我编写实验程序的方式只允许我单独看每个单词。我也在尝试查看整个短语的RT1和RT2(整个短语的RT1是RT1,其中ROI为1+RT1,其中ROI为2。通过将其值相加(其中ROI=1+其中ROI=2),可以对RT2应用相同的过程。
我试图通过对因变量(RT1和RT2)的值求和来创建两列(变量)

因此,理想情况下,我希望有一个代码可以以类似于下面的方式变异两个变量,其中第一行
Sum\u RT1
=
RT1
(其中
ROI
=1)+
RT2
下一行,其中
ROI
=2。第二行
Sum\u RT1
将是相同的值,因为将应用相同的求和过程,但方向相反(即
RT1
其中
ROI
为2+
RT1
其中
ROI
为2)

> d2
# A tibble: 16 x 10
   Subject   RT1   RT2 item     ROI `Item _Number` IA_LABEL block Sum_RT1 Sum_RT2
     <dbl> <dbl> <dbl> <chr>  <dbl>          <dbl> <chr>    <dbl>   <dbl>   <dbl>
 1       1   567   261 brill~     1              1 brillia~     3    1061     337
 2       1   494    76 brill~     2              1 salesman     3    1061     337
 3       1   441   211 detai~     1              2 detailed     3     985     493
 4       1   544   282 detai~     2              2 brochure     3     985     493
 5       1   289   153 detai~     1              2 detailed     4     430     294
 6       1   141   141 detai~     2              2 brochure     4     430     294
 7       1   141   141 brill~     1              1 brillia~     4     404     231
 8       1   263    90 brill~     2              1 salesman     4     404     231
 9       2   216   216 detai~     1              2 detailed     3     464     464
10       2   248   248 detai~     2              2 brochure     3     464     464
11       2   216   128 brill~     1              1 brillia~     3     454     268
12       2   238   140 brill~     2              1 salesman     3     454     268
13       2   212   212 detai~     1              2 detailed     6     581     453
14       2   369   241 detai~     2              2 brochure     6     581     453
15       2   208   208 brill~     1              1 brillia~     6     399     399
16       2   191   191 brill~     2              1 salesman     6     399     399

>d2
#一个tibble:16 x 10
受试者RT1 RT2项目ROI`项目编号`IA\U标签区块总和\U RT1总和\U RT2
1 1567 261布里亚~1布里亚~3 1061 337
2 1 494 76布里尔~2 1推销员3 1061 337
3 1 441 211详细信息~1 2详细信息3 985 493
4 1 544 282详情2手册3 985 493
5 1 289 153详细信息~1 2详细信息4 430 294
6 1 141详情2手册4 430 294
71141141布里里亚~11044404231
8 1 263 90布里尔~2 1推销员4 404 231
9 2 216详情2 3 464 464
10 2 248 248详情2手册3 464 464
11 2 216 128布里亚~1 1布里亚~3 454 268
12 2 238 140布里尔~2 1推销员3 454 268
13 2 212详情6 581 453
14 2 369 241详情2手册6 581 453
15 2 208 208布里亚~1 1布里亚~6 399 399
16 2 191 191布里尔~2 1推销员6 399 399

我计划在一个更大的数据中对许多变量应用该过程,因此我将高度赞赏您的想法和帮助。

按主题、项目编号和块对数据进行分组是否会得到所需的输出

colnames(d1)[6] <- "Item_Number" # delete the blank in the column name (otherwise it gives me an error...)

d2 <- d1 %>%
  group_by(Subject,block, Item_Number) %>%
  mutate(SumRT1 = sum(RT1), 
         SumRT2 = sum(RT2))
colnames(d1)[6]%
突变(SumRT1=sum(RT1),
SumRT2=总和(RT2))
输出:

# A tibble: 16 x 10
# Groups:   Subject, block, Item_Number [8]
   Subject   RT1   RT2 item                 ROI Item_Number IA_LABEL  block SumRT1 SumRT2
     <dbl> <dbl> <dbl> <chr>              <dbl>       <dbl> <chr>     <dbl>  <dbl>  <dbl>
 1       1   567   261 brilliant salesman     1           1 brilliant     3   1061    337
 2       1   494    76 brilliant salesman     2           1 salesman      3   1061    337
 3       1   441   211 detailed brochure      1           2 detailed      3    985    493
 4       1   544   282 detailed brochure      2           2 brochure      3    985    493
 5       1   289   153 detailed brochure      1           2 detailed      4    430    294
 6       1   141   141 detailed brochure      2           2 brochure      4    430    294
 7       1   141   141 brilliant salesman     1           1 brilliant     4    404    231
 8       1   263    90 brilliant salesman     2           1 salesman      4    404    231
 9       2   216   216 detailed brochure      1           2 detailed      3    464    464
10       2   248   248 detailed brochure      2           2 brochure      3    464    464
11       2   216   128 brilliant salesman     1           1 brilliant     3    454    268
12       2   238   140 brilliant salesman     2           1 salesman      3    454    268
13       2   212   212 detailed brochure      1           2 detailed      6    581    453
14       2   369   241 detailed brochure      2           2 brochure      6    581    453
15       2   208   208 brilliant salesman     1           1 brilliant     6    399    399
16       2   191   191 brilliant salesman     2           1 salesman      6    399    399
#一个tible:16 x 10
#分组:受试者、区块、项目编号[8]
受试者RT1 RT2项目ROI项目编号IA标签块SumRT1 SumRT2
1567261才华横溢的推销员111061337
2 1 494 76杰出推销员2 1推销员3 1061 337
3 1 441 211详细手册1 2详细手册3 985 493
4 1 544 282详细手册2手册3 985 493
5 1 289 153详细手册1 2详细手册4 430 294
6 1 141 141详细手册2手册4 430 294
71141141才华横溢的推销员111404231
8 1 263 90杰出推销员2 1推销员4 404 231
9 2 216 216详细手册1 2详细手册3 464 464
10 2 248 248详细手册2手册3 464 464
11 2 216 128才华横溢的推销员1才华横溢的3454 268
12 2 238 140才华横溢的推销员2 1推销员3 454 268
13 2 212 2详细手册1 2详细手册6 581 453
14 2 369 241详细手册2 2手册6 581 453
15 2 208 208才华横溢的推销员1 1才华横溢的6 399 399
16 2 191 191杰出的推销员2 1推销员6 399 399

ROI是否始终为1或2,或者是否需要对更多行进行缩放?感谢您的评论@camille。是的,我将尝试确保所有行的ROI保持一致(其中1表示第一个单词,2表示第二个单词),我认为这实际上比看起来简单得多。按任何列分组(主题,项目),然后用类似于
mutate\u at
的东西求和所需的变量。要放大,如果要对所有以“RT”开头的列求和,可以是
mutate\u at(vars(以(“RT”)开头)
非常感谢您的建议和评论@camille.Brilliant!非常感谢@Em Laskey对您生成的如此快速高效的代码的帮助。因此,如果我错了,请纠正我,我需要应用group_by函数来包含任何会为每个项目编号生成不同RT值的变量,对吗?是的,这正是至少,我以为我会在这里工作!
# A tibble: 16 x 10
# Groups:   Subject, block, Item_Number [8]
   Subject   RT1   RT2 item                 ROI Item_Number IA_LABEL  block SumRT1 SumRT2
     <dbl> <dbl> <dbl> <chr>              <dbl>       <dbl> <chr>     <dbl>  <dbl>  <dbl>
 1       1   567   261 brilliant salesman     1           1 brilliant     3   1061    337
 2       1   494    76 brilliant salesman     2           1 salesman      3   1061    337
 3       1   441   211 detailed brochure      1           2 detailed      3    985    493
 4       1   544   282 detailed brochure      2           2 brochure      3    985    493
 5       1   289   153 detailed brochure      1           2 detailed      4    430    294
 6       1   141   141 detailed brochure      2           2 brochure      4    430    294
 7       1   141   141 brilliant salesman     1           1 brilliant     4    404    231
 8       1   263    90 brilliant salesman     2           1 salesman      4    404    231
 9       2   216   216 detailed brochure      1           2 detailed      3    464    464
10       2   248   248 detailed brochure      2           2 brochure      3    464    464
11       2   216   128 brilliant salesman     1           1 brilliant     3    454    268
12       2   238   140 brilliant salesman     2           1 salesman      3    454    268
13       2   212   212 detailed brochure      1           2 detailed      6    581    453
14       2   369   241 detailed brochure      2           2 brochure      6    581    453
15       2   208   208 brilliant salesman     1           1 brilliant     6    399    399
16       2   191   191 brilliant salesman     2           1 salesman      6    399    399