【发布时间】:2017-08-09 05:15:22
【问题描述】:
很抱歉这个菜鸟问题,但几天后我无法弄清楚如何做到这一点。我一直在尝试使用R。简单来说,我有两列如下
A:B:C:D:F | 1.1:2.1:3.1:4.1:6.1
A:B:D:F | 1.2:2.2:4.2:6.2
A:B:C:F | 1.3:2.3:3.3:6.3
B:C:D:F | 2.4:3.4:4.4:6.4
注意分隔符是':'。最后我想要这个:
A | B | C | D | E | F
1.1 | 2.1 | 3.1 | 4.1 | NA | 6.1
1.2 | 2.2 | NA | 4.2 | NA | 6.2
1.3 | 2.3 | 3.3 | NA | NA | 6.3
NA | 2.4 | 3.4 | 4.4 | NA | 6.4
为什么我不能解决:
第二列中的值对于每一行都不同,所以我需要循环检查第 1 列第 x 行是否有字符串,如果存在则将数字插入相应的第 2 列第 x 行。 **我刚刚为行选择了 1.1、1.2 等,以便于概念化。
0 或 NA 不包含在第 1 列中,因此当缺少值时,我需要跳过列,例如在玩具示例中,第 2 行缺少 C 和 E 建议列。每行没有所需数量的字符串和对应的值(第 1 行有 5 个字符串,第 2 到第 4 行有 4 个
我会想象类似于以下内容的内容,将“1”替换为相应的第 2 列、第 x 行值,但我不知道该怎么做。我尝试过但被困在插入第 2 列值的另一种方法是仅根据是否存在字符串来创建具有 1 和 0 的列,这就是我遇到代码 sn-p 的方式。
df$A <- ifelse(grepl("A", df$PASS, ignore.case = T), "1", "0")
很抱歉写了这么长的文章,但我被卡住了。我觉得这超出了我的初级 R 水平。向任何能够解决这个问题的人致敬!
【问题讨论】:
-
你说的那两列在哪里?还是你的意思是四行??
-
你从哪里得到E???
标签: r string split delimiter na