R中的堆叠数据文件
Stacking data file in R
我正在寻找堆叠我在 R 中拥有的数据文件,并且正在努力寻找解决我的问题的方法。我有 49 个变量,分别命名为 i1.1、i1.2、1.3、i1.4、i1.5、i1.6、i1.7 ... i7.6、i7.7。我想将所有 i1 与一个新变量堆叠在一起,该变量指定从中获取的变量名称的最后部分,例如,如果值是从 i1.3 中获取的,则新变量将包含值 3。另一件事在我的数据集中,我还希望在数据集中保留一个 id 变量,以便我能够在以后的阶段合并一些额外的数据。有没有人有代码或想法,我如何创建一些东西来做到这一点?我真的卡住了。欢迎任何建议。提前谢谢你。
> #Call datafile
> testfile <-read_xlsx("C:/Users/rawlingsD/Documents/R Pre Analysis/Test stacking file.xlsx")
> head(testfile)
# A tibble: 3 x 50
Respondent_ID i1.1 i1.2 i1.3 i1.4 i1.5 i1.6 i1.7 i2.1 i2.2 i2.3 i2.4 i2.5 i2.6 i2.7 i3.1
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 12. 3. 1. 7. 1. 7. 1. 5. 1. 7. 1. 1. 1. 9. 1. 8.
2 13. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2.
3 14. 3. 3. 3. 3. 3. 3. 3. 3. 3. 3. 3. 3. 3. 3. 3.
# ... with 34 more variables: i3.2 <dbl>, i3.3 <dbl>, i3.4 <dbl>, i3.5 <dbl>, i3.6 <dbl>, i3.7 <dbl>,
# i4.1 <dbl>, i4.2 <dbl>, i4.3 <dbl>, i4.4 <dbl>, i4.5 <dbl>, i4.6 <dbl>, i4.7 <dbl>, i5.1 <dbl>,
# i5.2 <dbl>, i5.3 <dbl>, i5.4 <dbl>, i5.5 <dbl>, i5.6 <dbl>, i5.7 <dbl>, i6.1 <dbl>, i6.2 <dbl>,
# i6.3 <dbl>, i6.4 <dbl>, i6.5 <dbl>, i6.6 <dbl>, i6.7 <dbl>, i7.1 <dbl>, i7.2 <dbl>, i7.3 <dbl>,
# i7.4 <dbl>, i7.5 <dbl>, i7.6 <dbl>, i7.7 <dbl>
这是我想要的数据集,在 i1 旁边有 i2、i3 等:
> head(testfile_complete)
# A tibble: 6 x 3
Respondent_ID image i1
<dbl> <dbl> <dbl>
1 12. 1. 3.
2 13. 1. 2.
3 14. 1. 3.
4 12. 2. 1.
5 13. 2. 2.
6 14. 2. 3.
如果您需要这些列,那么您可以这样做:我只会为 i1 和 i2 做
reshape(dat1,varying = t(matrix(names(dat1[-1]),7)),idvar = "Respondent_ID",dir="long")
Respondent_ID time i1.1 i2.1
12.1 12 1 3 1
13.1 13 1 2 2
14.1 14 1 3 3
12.2 12 2 1 7
13.2 13 2 2 2
14.2 14 2 3 3
12.3 12 3 7 1
13.3 13 3 2 2
14.3 14 3 3 3
12.4 12 4 1 1
13.4 13 4 2 2
14.4 14 4 3 3
12.5 12 5 7 1
13.5 13 5 2 2
14.5 14 5 3 3
12.6 12 6 1 9
13.6 13 6 2 2
14.6 14 6 3 3
12.7 12 7 5 1
13.7 13 7 2 2
14.7 14 7 3 3
我正在寻找堆叠我在 R 中拥有的数据文件,并且正在努力寻找解决我的问题的方法。我有 49 个变量,分别命名为 i1.1、i1.2、1.3、i1.4、i1.5、i1.6、i1.7 ... i7.6、i7.7。我想将所有 i1 与一个新变量堆叠在一起,该变量指定从中获取的变量名称的最后部分,例如,如果值是从 i1.3 中获取的,则新变量将包含值 3。另一件事在我的数据集中,我还希望在数据集中保留一个 id 变量,以便我能够在以后的阶段合并一些额外的数据。有没有人有代码或想法,我如何创建一些东西来做到这一点?我真的卡住了。欢迎任何建议。提前谢谢你。
> #Call datafile
> testfile <-read_xlsx("C:/Users/rawlingsD/Documents/R Pre Analysis/Test stacking file.xlsx")
> head(testfile)
# A tibble: 3 x 50
Respondent_ID i1.1 i1.2 i1.3 i1.4 i1.5 i1.6 i1.7 i2.1 i2.2 i2.3 i2.4 i2.5 i2.6 i2.7 i3.1
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 12. 3. 1. 7. 1. 7. 1. 5. 1. 7. 1. 1. 1. 9. 1. 8.
2 13. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2.
3 14. 3. 3. 3. 3. 3. 3. 3. 3. 3. 3. 3. 3. 3. 3. 3.
# ... with 34 more variables: i3.2 <dbl>, i3.3 <dbl>, i3.4 <dbl>, i3.5 <dbl>, i3.6 <dbl>, i3.7 <dbl>,
# i4.1 <dbl>, i4.2 <dbl>, i4.3 <dbl>, i4.4 <dbl>, i4.5 <dbl>, i4.6 <dbl>, i4.7 <dbl>, i5.1 <dbl>,
# i5.2 <dbl>, i5.3 <dbl>, i5.4 <dbl>, i5.5 <dbl>, i5.6 <dbl>, i5.7 <dbl>, i6.1 <dbl>, i6.2 <dbl>,
# i6.3 <dbl>, i6.4 <dbl>, i6.5 <dbl>, i6.6 <dbl>, i6.7 <dbl>, i7.1 <dbl>, i7.2 <dbl>, i7.3 <dbl>,
# i7.4 <dbl>, i7.5 <dbl>, i7.6 <dbl>, i7.7 <dbl>
这是我想要的数据集,在 i1 旁边有 i2、i3 等:
> head(testfile_complete)
# A tibble: 6 x 3
Respondent_ID image i1
<dbl> <dbl> <dbl>
1 12. 1. 3.
2 13. 1. 2.
3 14. 1. 3.
4 12. 2. 1.
5 13. 2. 2.
6 14. 2. 3.
如果您需要这些列,那么您可以这样做:我只会为 i1 和 i2 做
reshape(dat1,varying = t(matrix(names(dat1[-1]),7)),idvar = "Respondent_ID",dir="long")
Respondent_ID time i1.1 i2.1
12.1 12 1 3 1
13.1 13 1 2 2
14.1 14 1 3 3
12.2 12 2 1 7
13.2 13 2 2 2
14.2 14 2 3 3
12.3 12 3 7 1
13.3 13 3 2 2
14.3 14 3 3 3
12.4 12 4 1 1
13.4 13 4 2 2
14.4 14 4 3 3
12.5 12 5 7 1
13.5 13 5 2 2
14.5 14 5 3 3
12.6 12 6 1 9
13.6 13 6 2 2
14.6 14 6 3 3
12.7 12 7 5 1
13.7 13 7 2 2
14.7 14 7 3 3