很抱歉,我无法给出更具体的标题。我正试图让自己摆脱电子表格来完成更困难的任务,而这给我带来了特别的麻烦——我可以在 Excel 中完成,但我真的不知道如何从 R 开始。这有点难以描述。我想这里可能会涉及多种技术,所以我希望这对其他人有用。
我有来自电子表格的以下形式的数据:
资料:
1 GOEK, WOWP, PEOL, WJRN, KENC, QPOE, JFPG, PWKR, PWEOR, JFOKE, POQK, LSPF, PEKF,PFOW, VCNS, ALAO, LFOD
2 KFDL, LFOD, WOWP, PWEO, PWEOR, PRCP, ALPQ, JFOKE, ALLF, VCNS CNIR,
3 KJTJ, FKOF, VCNS, FLEP
4 FKKF, EPTR
5 QPOE, PEOL, WJRN, VCNS, PEKF, PFPW
此数据与以下键相关联:
关键:
Items A B C
ALAO NA 0.12246503 0.137902549
ALLF 0.016262491 0.557522799 0.622560763
ALPQ 0.409770566 0.770904525 NA
CNIR NA 0.38075281 0.698236443
EPTR 0.718354484 0.290028597 0.525661861
FKKF 0.801489091 0.878405308 0.645004844
FKOF 0.643251028 0.131643544 NA
FLEP 0.018262707 0.211220859 0.457302727
GOEK 0.902121539 NA NA
JFOKE 0.808410498 0.301443669 0.575188395
JFPG NA NA 0.343824191
KENC 0.882285296 0.372821865 0.593742731
KFDL 0.077569421 0.076497291 NA
KJTJ 0.249613609 0.227241864 NA
LFOD NA 0.000343115 0.329546051
LSPF 0.088451014 0.65148309 0.267490643
PEKF 0.645309773 NA 0.116601451
PEOL 0.626916187 0.093812247 0.152577881
PFOW 0.86690534 0.596673645 NA
PFPW NA 0.018869604 NA
POQK 0.683221579 NA 0.472456955
PRCP 0.486488748 0.860947689 0.097916066
PWEO 0.665854791 0.814111848 0.026085774
PWEOR 0.611034332 0.17254104 0.212386401
PWKR NA NA 0.357298987
QPOE 0.815885005 0.083834541 NA
VCNS 0.394817612 0.250760686 0.419539549
WJRN 0.403002388 0.705142265 0.768961818
WOWP 0.794250738 NA 0.967405211
这是一般方法:
数据中显示的每一行都来自电子表格的一个单元格,因此如果直接导入,它将被 R 解释为一个字符串。将每一行的字符串拆分为可以在 R 中存储为向量的形式。
根据与其关联的行中的值,将数据过滤为三个类别(A、B 或 C)。例如,对于第 5 行数据,我们有以下值:QPOE, PEOL, WJRN, VCNS, PEKF, PFPW
。查看key,我们可以根据 A、B 或 C 中包含的内容将其分为三个子类别。这取决于该行中是否存在 NA:
A QPOE PEOL WJRN VCNS PEKF
B QPOE PEOL WJRN VCNS PFPW
C PEOL WJRN VCNS PEKF
现在我们已将数据的第 5 行划分为各自的类别,我们可以为该行创建一个单独的表,其中包含相关值:
A 0.815885005 0.626916187 0.403002388 0.394817612 0.645309773
B 0.083834541 0.093812247 0.705142265 0.250760686 0.018869604
C 0.152577881 0.768961818 0.419539549 0.116601451
所以我们有一种哈希表......有点。现在我想将这些值存储在一个表中。它在最终形式中基本上看起来像这样(仅显示第 5 行数据):
Cat A Item A Value B Item B Value C Item C Value
5 QPOE 0.815885005 QPOE 0.083834541 PEOL 0.152577881
5 PEOL 0.626916187 PEOL 0.093812247 WJRN 0.768961818
5 WJRN 0.403002388 WJRN 0.705142265 VCNS 0.419539549
5 VCNS 0.394817612 VCNS 0.250760686 PEKF 0.116601451
5 PEKF 0.645309773 PFPW 0.018869604 NA NA
实际上,我在数据中有 400 行“猫”,而不仅仅是 5 行。
这是存储数据以方便参考的最佳方式吗?嵌套列表会像这样更受欢迎吗?
- 猫排 1
- 一个项目
- 价值观
- B 项目
- 价值观
- C项目
- 价值观
- 一个项目
- 猫排 2...
我只是犹豫要不要为这些数据制作数据框,因为当我的原始数据分为 A、B 和 C 时,行的长度变化很大。最短的必须有 NA 才能填充到最长的长度以适合数据帧。这件事让我感到不舒服。
我总是可以查找答案中使用的函数并弄清楚,所以除非你觉得特别慷慨,否则不需要深入解释!感谢您的时间。